System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本申請涉及語音合成,更具體的說,是涉及一種語音合成播報方法、裝置、相關(guān)設(shè)備及計算機程序產(chǎn)品。
技術(shù)介紹
1、隨著科技的不斷進步,各類包含語音合成技術(shù)的移動設(shè)備如雨后春筍般涌現(xiàn)。這些設(shè)備以其便捷的播音功能,深受廣大客戶的喜愛。然而,隨著市場需求的提升,客戶對于播報出來的音頻質(zhì)量的要求也日益苛刻。他們不僅期望在網(wǎng)絡(luò)狀況良好的情況下獲得高質(zhì)量的音頻體驗,更希望在偶爾出現(xiàn)的網(wǎng)絡(luò)差的場景下,仍能享受到質(zhì)量較高的音頻效果。
2、因此,如何在各種網(wǎng)絡(luò)環(huán)境下保持音頻質(zhì)量的穩(wěn)定性和清晰度,成為了研發(fā)人員亟待解決的問題。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,提出了本申請以便提供一種語音合成播報方法、裝置、相關(guān)設(shè)備及計算機程序產(chǎn)品,以提升在各種網(wǎng)絡(luò)環(huán)境下播報的合成語音的質(zhì)量。具體方案如下:
2、第一方面,提供了一種語音合成播報方法,包括:
3、在收到語音合成播報指令時,啟動對目標文本的本地合成流程,并保存合成的本地音頻數(shù)據(jù),以及,將所述目標文本發(fā)送給服務器,以請求服務器對所述目標文本進行語音合成;
4、持續(xù)接收服務器返回的合成后的音頻數(shù)據(jù),并按照設(shè)定拋出規(guī)則,將服務器返回的音頻數(shù)據(jù)拋出播放;
5、實時計算吞吐率,所述吞吐率為已拋出的音頻時長與產(chǎn)生這段音頻所需的時長的比值;
6、若確定當前計算得到的吞吐率小于設(shè)定閾值,則利用所述本地音頻數(shù)據(jù)進行續(xù)播。
7、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,在首次接
8、所述按照設(shè)定拋出規(guī)則,將服務器返回的音頻數(shù)據(jù)拋出播放的過程,包括:
9、在每次接收到服務器返回的音頻數(shù)據(jù)后,將收到的音頻數(shù)據(jù)暫存并計算截止當前為止已收到服務器返回的全部音頻數(shù)據(jù),減去已拋出的音頻數(shù)據(jù)后剩余音頻數(shù)據(jù)的總字節(jié)數(shù);
10、判斷所述總字節(jié)數(shù)是否不小于第i+1個字對應音頻數(shù)據(jù)的字節(jié)數(shù),其中,i為已拋出的服務器合成的音頻數(shù)據(jù)對應的最后一個字在所述目標文本中的排序編號,第i+1個字對應音頻數(shù)據(jù)的字節(jié)數(shù)為所述第一時長信息中第i+1個字對應的音頻時長與服務器的音頻采樣率的乘積;
11、若是,從本地暫存的服務器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放。
12、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,所述從本地暫存的服務器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
13、將本地暫存的服務器返回的音頻數(shù)據(jù)中,第i+1個字及其之前的各字的音頻數(shù)據(jù)拋出播放。
14、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,所述從本地暫存的服務器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
15、將本地暫存的服務器返回的音頻數(shù)據(jù)中,第i+1個字之前各字的音頻數(shù)據(jù),以及第i+1個字的音頻數(shù)據(jù)中除去尾部第一設(shè)定時長的音頻數(shù)據(jù)拋出播放。
16、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,利用所述本地音頻數(shù)據(jù)進行續(xù)播的過程,包括:
17、取服務器返回的音頻數(shù)據(jù)中第i個字尾部第一設(shè)定時長的音頻數(shù)據(jù),以及取本地音頻數(shù)據(jù)中第i+1個字頭部第二設(shè)定時長的音頻數(shù)據(jù),做平滑處理,將平滑后的音頻數(shù)據(jù)拋出播放,隨后利用本地音頻數(shù)據(jù)中從第i+1個字頭部第二設(shè)定時長開始后的音頻數(shù)據(jù)進行續(xù)播;
18、其中,i為已拋出的服務器合成的音頻數(shù)據(jù)對應的最后一個字在所述目標文本中的排序編號。
19、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,所述保存合成的本地音頻數(shù)據(jù),包括:
20、保存合成的第i個字之后的設(shè)定數(shù)量m個字的本地音頻數(shù)據(jù),并將第i個字及第i個字之前各字的本地音頻數(shù)據(jù)刪除;
21、其中,i為已拋出的服務器合成的音頻數(shù)據(jù)對應的最后一個字在所述目標文本中的排序編號。
22、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,所述本地合成流程啟動后會計算得到第二時長信息,所述第二時長信息包括本地計算得到的所述目標文本中每個字對應的音頻時長;
23、則保存合成的第i個字之后的設(shè)定數(shù)量m個字的本地音頻數(shù)據(jù)的過程,包括:
24、根據(jù)第二時長信息中每個字的音頻時長,在合成的本地音頻數(shù)據(jù)流中選取第i個字之后的設(shè)定數(shù)量m個字的本地音頻數(shù)據(jù)進行保存。
25、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,在啟動對目標文本的本地合成流程之后,還包括:
26、在每次拋出服務器合成的音頻數(shù)據(jù)后,基于最新的i值確定所要保存的本地音頻數(shù)據(jù)對應的最后一個目標字,并在本地合成流程合成完畢所述目標字對應的音頻數(shù)據(jù)后阻塞住本地合成流程,直至滿足啟動條件時再次啟動本地合成流程,所述啟動條件包括:基于最新的i值確定需要繼續(xù)本地合成流程,或,確定當前計算得到的吞吐率小于設(shè)定閾值。
27、在一種可能的設(shè)計中,在本申請實施例的第一方面的另一種實現(xiàn)方式中,在確定當前計算得到的吞吐率小于設(shè)定閾值時,還包括:
28、通知服務器終止進行語音合成。
29、第二方面,提供了一種語音合成播報裝置,包括:
30、指令響應單元,用于在收到語音合成播報指令時,啟動對目標文本的本地合成流程,并保存合成的本地音頻數(shù)據(jù),以及,將所述目標文本發(fā)送給服務器,以請求服務器對所述目標文本進行語音合成;
31、音頻數(shù)據(jù)接收及拋出單元,用于持續(xù)接收服務器返回的合成后的音頻數(shù)據(jù),并按照設(shè)定拋出規(guī)則,將服務器返回的音頻數(shù)據(jù)拋出播放;
32、吞吐率計算單元,用于實時計算吞吐率,所述吞吐率為已拋出的音頻時長與產(chǎn)生這段音頻所需的時長的比值;
33、續(xù)播單元,用于若確定當前計算得到的吞吐率小于設(shè)定閾值,則利用所述本地音頻數(shù)據(jù)進行續(xù)播。
34、第三方面,提供了一種電子設(shè)備,包括:存儲器和處理器;
35、所述存儲器,用于存儲程序;
36、所述處理器,用于執(zhí)行所述程序,實現(xiàn)本申請前述第一方面中任一項所描述的語音合成播報方法。
37、第四方面,提供了一種語音合成播報系統(tǒng),包括:終端和服務器;
38、所述終端,用于在收到語音合成播報指令時,啟動對目標文本的本地合成流程,并保存合成的本地音頻數(shù)據(jù),以及,將所述目標文本發(fā)送給所述服務器,以請求服務器對所述目標文本進行語音合成;持續(xù)接收服務器返回的合成后的音頻數(shù)據(jù),并按照設(shè)定拋出規(guī)則,將服務器返回的音頻數(shù)據(jù)拋出播放;實時計算吞吐率,所述吞吐率為已拋出的音頻時長與產(chǎn)生這段音頻所需的時長的比值;若確定當前計算得到的吞吐率小于設(shè)定閾值,則利用所述本地音頻數(shù)據(jù)進行續(xù)播;
本文檔來自技高網(wǎng)...
【技術(shù)保護點】
1.一種語音合成播報方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在首次接收服務器返回的合成后音頻數(shù)據(jù)的同時,還接收服務器返回的第一時長信息,所述第一時長信息包括服務器計算得到的所述目標文本中每個字對應的音頻時長;
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從本地暫存的服務器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從本地暫存的服務器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,利用所述本地音頻數(shù)據(jù)進行續(xù)播的過程,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述保存合成的本地音頻數(shù)據(jù),包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述本地合成流程啟動后會計算得到第二時長信息,所述第二時長信息包括本地計算得到的所述目標文本中每個字對應的音頻時長;
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,在啟動對目標文本的本地合成流程之后,還包括
9.根據(jù)權(quán)利要求1-8任一項所述的方法,其特征在于,在確定當前計算得到的吞吐率小于設(shè)定閾值時,還包括:
10.一種語音合成播報裝置,其特征在于,包括:
11.一種電子設(shè)備,其特征在于,包括:存儲器和處理器;
12.一種語音合成播報系統(tǒng),其特征在于,包括:終端和服務器;
13.一種可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時,實現(xiàn)如權(quán)利要求1~9中任一項所述的語音合成播報方法的各個步驟。
14.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,該計算機程序被處理器執(zhí)行時,實現(xiàn)如權(quán)利要求1~9中任一項所述的語音合成播報方法的各個步驟。
...【技術(shù)特征摘要】
1.一種語音合成播報方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在首次接收服務器返回的合成后音頻數(shù)據(jù)的同時,還接收服務器返回的第一時長信息,所述第一時長信息包括服務器計算得到的所述目標文本中每個字對應的音頻時長;
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從本地暫存的服務器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述從本地暫存的服務器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,利用所述本地音頻數(shù)據(jù)進行續(xù)播的過程,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述保存合成的本地音頻數(shù)據(jù),包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述本地合成流程啟動后會計算得到第二時...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:楊昭輝,王貴冬,欒俊,雷琴輝,劉俊峰,
申請(專利權(quán))人:科大訊飛股份有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。