本技術(shù)涉及語音合成,更具體的說,是涉及一種語音合成播報(bào)方法、裝置、相關(guān)設(shè)備及計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、隨著科技的不斷進(jìn)步,各類包含語音合成技術(shù)的移動(dòng)設(shè)備如雨后春筍般涌現(xiàn)。這些設(shè)備以其便捷的播音功能,深受廣大客戶的喜愛。然而,隨著市場(chǎng)需求的提升,客戶對(duì)于播報(bào)出來的音頻質(zhì)量的要求也日益苛刻。他們不僅期望在網(wǎng)絡(luò)狀況良好的情況下獲得高質(zhì)量的音頻體驗(yàn),更希望在偶爾出現(xiàn)的網(wǎng)絡(luò)差的場(chǎng)景下,仍能享受到質(zhì)量較高的音頻效果。
2、因此,如何在各種網(wǎng)絡(luò)環(huán)境下保持音頻質(zhì)量的穩(wěn)定性和清晰度,成為了研發(fā)人員亟待解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,提出了本技術(shù)以便提供一種語音合成播報(bào)方法、裝置、相關(guān)設(shè)備及計(jì)算機(jī)程序產(chǎn)品,以提升在各種網(wǎng)絡(luò)環(huán)境下播報(bào)的合成語音的質(zhì)量。具體方案如下:
2、第一方面,提供了一種語音合成播報(bào)方法,包括:
3、在收到語音合成播報(bào)指令時(shí),啟動(dòng)對(duì)目標(biāo)文本的本地合成流程,并保存合成的本地音頻數(shù)據(jù),以及,將所述目標(biāo)文本發(fā)送給服務(wù)器,以請(qǐng)求服務(wù)器對(duì)所述目標(biāo)文本進(jìn)行語音合成;
4、持續(xù)接收服務(wù)器返回的合成后的音頻數(shù)據(jù),并按照設(shè)定拋出規(guī)則,將服務(wù)器返回的音頻數(shù)據(jù)拋出播放;
5、實(shí)時(shí)計(jì)算吞吐率,所述吞吐率為已拋出的音頻時(shí)長(zhǎng)與產(chǎn)生這段音頻所需的時(shí)長(zhǎng)的比值;
6、若確定當(dāng)前計(jì)算得到的吞吐率小于設(shè)定閾值,則利用所述本地音頻數(shù)據(jù)進(jìn)行續(xù)播。
7、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,在首次接收服務(wù)器返回的合成后音頻數(shù)據(jù)的同時(shí),還接收服務(wù)器返回的第一時(shí)長(zhǎng)信息,所述第一時(shí)長(zhǎng)信息包括服務(wù)器計(jì)算得到的所述目標(biāo)文本中每個(gè)字對(duì)應(yīng)的音頻時(shí)長(zhǎng);
8、所述按照設(shè)定拋出規(guī)則,將服務(wù)器返回的音頻數(shù)據(jù)拋出播放的過程,包括:
9、在每次接收到服務(wù)器返回的音頻數(shù)據(jù)后,將收到的音頻數(shù)據(jù)暫存并計(jì)算截止當(dāng)前為止已收到服務(wù)器返回的全部音頻數(shù)據(jù),減去已拋出的音頻數(shù)據(jù)后剩余音頻數(shù)據(jù)的總字節(jié)數(shù);
10、判斷所述總字節(jié)數(shù)是否不小于第i+1個(gè)字對(duì)應(yīng)音頻數(shù)據(jù)的字節(jié)數(shù),其中,i為已拋出的服務(wù)器合成的音頻數(shù)據(jù)對(duì)應(yīng)的最后一個(gè)字在所述目標(biāo)文本中的排序編號(hào),第i+1個(gè)字對(duì)應(yīng)音頻數(shù)據(jù)的字節(jié)數(shù)為所述第一時(shí)長(zhǎng)信息中第i+1個(gè)字對(duì)應(yīng)的音頻時(shí)長(zhǎng)與服務(wù)器的音頻采樣率的乘積;
11、若是,從本地暫存的服務(wù)器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放。
12、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,所述從本地暫存的服務(wù)器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
13、將本地暫存的服務(wù)器返回的音頻數(shù)據(jù)中,第i+1個(gè)字及其之前的各字的音頻數(shù)據(jù)拋出播放。
14、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,所述從本地暫存的服務(wù)器返回的音頻數(shù)據(jù)中選中本次要拋出的音頻數(shù)據(jù),并拋出播放的過程,包括:
15、將本地暫存的服務(wù)器返回的音頻數(shù)據(jù)中,第i+1個(gè)字之前各字的音頻數(shù)據(jù),以及第i+1個(gè)字的音頻數(shù)據(jù)中除去尾部第一設(shè)定時(shí)長(zhǎng)的音頻數(shù)據(jù)拋出播放。
16、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,利用所述本地音頻數(shù)據(jù)進(jìn)行續(xù)播的過程,包括:
17、取服務(wù)器返回的音頻數(shù)據(jù)中第i個(gè)字尾部第一設(shè)定時(shí)長(zhǎng)的音頻數(shù)據(jù),以及取本地音頻數(shù)據(jù)中第i+1個(gè)字頭部第二設(shè)定時(shí)長(zhǎng)的音頻數(shù)據(jù),做平滑處理,將平滑后的音頻數(shù)據(jù)拋出播放,隨后利用本地音頻數(shù)據(jù)中從第i+1個(gè)字頭部第二設(shè)定時(shí)長(zhǎng)開始后的音頻數(shù)據(jù)進(jìn)行續(xù)播;
18、其中,i為已拋出的服務(wù)器合成的音頻數(shù)據(jù)對(duì)應(yīng)的最后一個(gè)字在所述目標(biāo)文本中的排序編號(hào)。
19、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,所述保存合成的本地音頻數(shù)據(jù),包括:
20、保存合成的第i個(gè)字之后的設(shè)定數(shù)量m個(gè)字的本地音頻數(shù)據(jù),并將第i個(gè)字及第i個(gè)字之前各字的本地音頻數(shù)據(jù)刪除;
21、其中,i為已拋出的服務(wù)器合成的音頻數(shù)據(jù)對(duì)應(yīng)的最后一個(gè)字在所述目標(biāo)文本中的排序編號(hào)。
22、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,所述本地合成流程啟動(dòng)后會(huì)計(jì)算得到第二時(shí)長(zhǎng)信息,所述第二時(shí)長(zhǎng)信息包括本地計(jì)算得到的所述目標(biāo)文本中每個(gè)字對(duì)應(yīng)的音頻時(shí)長(zhǎng);
23、則保存合成的第i個(gè)字之后的設(shè)定數(shù)量m個(gè)字的本地音頻數(shù)據(jù)的過程,包括:
24、根據(jù)第二時(shí)長(zhǎng)信息中每個(gè)字的音頻時(shí)長(zhǎng),在合成的本地音頻數(shù)據(jù)流中選取第i個(gè)字之后的設(shè)定數(shù)量m個(gè)字的本地音頻數(shù)據(jù)進(jìn)行保存。
25、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,在啟動(dòng)對(duì)目標(biāo)文本的本地合成流程之后,還包括:
26、在每次拋出服務(wù)器合成的音頻數(shù)據(jù)后,基于最新的i值確定所要保存的本地音頻數(shù)據(jù)對(duì)應(yīng)的最后一個(gè)目標(biāo)字,并在本地合成流程合成完畢所述目標(biāo)字對(duì)應(yīng)的音頻數(shù)據(jù)后阻塞住本地合成流程,直至滿足啟動(dòng)條件時(shí)再次啟動(dòng)本地合成流程,所述啟動(dòng)條件包括:基于最新的i值確定需要繼續(xù)本地合成流程,或,確定當(dāng)前計(jì)算得到的吞吐率小于設(shè)定閾值。
27、在一種可能的設(shè)計(jì)中,在本技術(shù)實(shí)施例的第一方面的另一種實(shí)現(xiàn)方式中,在確定當(dāng)前計(jì)算得到的吞吐率小于設(shè)定閾值時(shí),還包括:
28、通知服務(wù)器終止進(jìn)行語音合成。
29、第二方面,提供了一種語音合成播報(bào)裝置,包括:
30、指令響應(yīng)單元,用于在收到語音合成播報(bào)指令時(shí),啟動(dòng)對(duì)目標(biāo)文本的本地合成流程,并保存合成的本地音頻數(shù)據(jù),以及,將所述目標(biāo)文本發(fā)送給服務(wù)器,以請(qǐng)求服務(wù)器對(duì)所述目標(biāo)文本進(jìn)行語音合成;
31、音頻數(shù)據(jù)接收及拋出單元,用于持續(xù)接收服務(wù)器返回的合成后的音頻數(shù)據(jù),并按照設(shè)定拋出規(guī)則,將服務(wù)器返回的音頻數(shù)據(jù)拋出播放;
32、吞吐率計(jì)算單元,用于實(shí)時(shí)計(jì)算吞吐率,所述吞吐率為已拋出的音頻時(shí)長(zhǎng)與產(chǎn)生這段音頻所需的時(shí)長(zhǎng)的比值;
33、續(xù)播單元,用于若確定當(dāng)前計(jì)算得到的吞吐率小于設(shè)定閾值,則利用所述本地音頻數(shù)據(jù)進(jìn)行續(xù)播。
34、第三方面,提供了一種電子設(shè)備,包括:存儲(chǔ)器和處理器;
35、所述存儲(chǔ)器,用于存儲(chǔ)程序;
36、所述處理器,用于執(zhí)行所述程序,實(shí)現(xiàn)本技術(shù)前述第一方面中任一項(xiàng)所描述的語音合成播報(bào)方法。
37、第四方面,提供了一種語音合成播報(bào)系統(tǒng),包括:終端和服務(wù)器;
38、所述終端,用于在收到語音合成播報(bào)指令時(shí),啟動(dòng)對(duì)目標(biāo)文本的本地合成流程,并保存合成的本地音頻數(shù)據(jù),以及,將所述目標(biāo)文本發(fā)送給所述服務(wù)器,以請(qǐng)求服務(wù)器對(duì)所述目標(biāo)文本進(jìn)行語音合成;持續(xù)接收服務(wù)器返回的合成后的音頻數(shù)據(jù),并按照設(shè)定拋出規(guī)則,將服務(wù)器返回的音頻數(shù)據(jù)拋出播放;實(shí)時(shí)計(jì)算吞吐率,所述吞吐率為已拋出的音頻時(shí)長(zhǎng)與產(chǎn)生這段音頻所需的時(shí)長(zhǎng)的比值;若確定當(dāng)前計(jì)算得到的吞吐率小于設(shè)定閾值,則利用所述本地音頻數(shù)據(jù)進(jìn)行續(xù)播;
39、所述服務(wù)器,用于對(duì)所述目標(biāo)文本進(jìn)行語音合成,并按照設(shè)定策略將最新合成的音頻數(shù)據(jù)返回給所述終端。
40、第五方面,提供了一種可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)本技術(shù)前述第一方面中任一項(xiàng)所描述的語音合成播報(bào)方法。
41、第六方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)現(xiàn)本技術(shù)前述第一方面中任一項(xiàng)所描述的語音合成播報(bào)方法。
42、借由上述技術(shù)方案,本技術(shù)在收到語音合成播報(bào)指令時(shí),同時(shí)啟動(dòng)本地合成流程以及請(qǐng)求服務(wù)器進(jìn)行語音合成,由服務(wù)器將合成后的音頻數(shù)據(jù)通過網(wǎng)絡(luò)傳輸給終端,終端按照設(shè)定拋出規(guī)則,將服務(wù)器返回的音頻數(shù)據(jù)拋出播放。借助于服務(wù)器強(qiáng)大的算力,可以保證合成后的音頻數(shù)據(jù)的質(zhì)量。此外,為了更加及時(shí)、準(zhǔn)確地判斷網(wǎng)絡(luò)傳輸是否中斷,本技術(shù)可以實(shí)時(shí)計(jì)算吞吐率,以吞吐率作為網(wǎng)絡(luò)是否中斷的判斷指標(biāo),該吞吐率能夠從用戶聽覺角度及時(shí)判斷網(wǎng)絡(luò)傳輸是否出現(xiàn)或即將出現(xiàn)中斷,在確定當(dāng)前計(jì)算的吞吐率小于設(shè)定閾值時(shí),表示網(wǎng)絡(luò)傳輸出現(xiàn)或即將出現(xiàn)中斷,此時(shí)為了持續(xù)提供相對(duì)穩(wěn)定的音頻數(shù)據(jù),本技術(shù)可以利用本地合成的音頻數(shù)據(jù)替代服務(wù)器合成的音頻數(shù)據(jù)進(jìn)行續(xù)播,因而在網(wǎng)絡(luò)波動(dòng)時(shí)能夠維持連貫的用戶體驗(yàn),提升了語音播報(bào)質(zhì)量。