本申請涉及語音合成技術(shù)領(lǐng)域,尤其涉及一種語音合成處理方法及裝置。
背景技術(shù):
隨著語音合成技術(shù)的發(fā)展,出現(xiàn)了很多在線語音合成引擎。通過在線語音合成引擎,用戶可以將文本格式的數(shù)據(jù)轉(zhuǎn)換成語音格式的數(shù)據(jù),并播放轉(zhuǎn)換后的語音格式的數(shù)據(jù)。
一般來說,在線語音合成引擎合成的音頻質(zhì)量比較好,對音頻質(zhì)量要求高的用戶一般青睞在線語音合成引擎。但是,在線語音合成引擎需要在聯(lián)網(wǎng)的狀態(tài)下執(zhí)行合成。如果,在用戶使用在線語音合成引擎合成音頻的過程中,遇到網(wǎng)絡(luò)狀況較差或引擎故障等異常情況,可能會導(dǎo)致音頻合成不流暢,甚至中斷的問題。
技術(shù)實現(xiàn)要素:
本申請的多個方面提供一種語音合成處理方法及裝置,用以解決在線語音合成引擎合成音頻的過程中,音頻合成不流暢,甚至中斷的問題。
本申請實施例提供一種語音合成處理方法,包括:
在在線語音合成引擎將文本合成音頻信號的過程中,周期性采集所述在線語音合成引擎的合成速率;
根據(jù)所述合成速率,確定在線語音合成過程出現(xiàn)異常狀況;
標(biāo)記所述在線語音合成引擎在在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置;
從所述第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。
可選地,所述根據(jù)所述合成速率,確定在線語音合成過程出現(xiàn)異常狀況,包括:
若所述合成速率的波動幅度大于預(yù)設(shè)的波動幅度閾值,確定在線語音合成過程出現(xiàn)異常狀況;或者
若所述合成速率小于預(yù)設(shè)的速率閾值,確定在線語音合成過程出現(xiàn)異常狀況。
可選地,所述從所述第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號,包括:
根據(jù)所述在線語音合成引擎合成音頻信號時采用的音頻特征,從至少一個語音庫中選擇與所述音頻特征匹配度最高的目標(biāo)語音庫;
從所述第一文本位置開始,將所述后續(xù)的文本輸入使用所述目標(biāo)語音庫的離線語音合成引擎,以供所述離線語音合成引擎基于所述目標(biāo)語音庫將所述后續(xù)的文本合成音頻信號。
可選地,所述方法還包括:
在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測離線語音合成過程是否出現(xiàn)異常狀況;
若監(jiān)測到離線語音合成過程出現(xiàn)異常狀況,標(biāo)記所述離線語音合成引擎在離線語音合成過程出現(xiàn)異常狀況時合成到的第二文本位置;
從所述第二文本位置開始,啟用所述在線語音合成引擎將后續(xù)的文本合成音頻信號。
可選地,所述在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測離線語音合成過程是否出現(xiàn)異常狀況,包括:
在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測所述離線語音合成引擎使用的語音庫中是否包括待合成的文本片段對應(yīng)的語音單元;
若判斷結(jié)果為否,確定離線語音合成過程出現(xiàn)異常狀況;
若判斷結(jié)果為是,確定離線語音合成過程未出現(xiàn)異常狀況。
可選地,所述方法還包括:
在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測在線語音合成過程中出現(xiàn)的異常狀況是否消除;
若監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時,標(biāo)記所述離線語音合成引擎在監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時合成到的第三文本位置;
從所述第三文本位置開始,啟用所述在線語音合成引擎將后續(xù)的文本合成音頻信號。
可選地,所述在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測在線語音合成過程中出現(xiàn)的異常狀況是否消除,包括:
在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,向所述在線語音合成引擎發(fā)送探測信號;
若在設(shè)定時間內(nèi)收到所述在線語音合成引擎針對所述探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況消除;
若未在設(shè)定時間內(nèi)收到所述在線語音合成引擎針對所述探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況尚未消除。
本申請實施例提供一種語音合成處理裝置,包括:
采集模塊,用于在在線語音合成引擎將文本合成音頻信號的過程中,周期性采集所述在線語音合成引擎的合成速率;
確定模塊,用于根據(jù)所述合成速率,確定在線語音合成過程出現(xiàn)異常狀況;
第一標(biāo)記模塊,用于標(biāo)記所述在線語音合成引擎在在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置;
第一啟用模塊,用于從所述第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。
可選地,所述確定模塊具體還用于:
若所述合成速率的波動幅度大于預(yù)設(shè)的波動幅度閾值,確定在線語音合成過程出現(xiàn)異常狀況;或者
若所述合成速率小于預(yù)設(shè)的速率閾值,確定在線語音合成過程出現(xiàn)異常狀況。
可選地,所述第一啟用模塊具體還用于:
根據(jù)所述在線語音合成引擎合成音頻信號時采用的音頻特征,從至少一個語音庫中選擇與所述音頻特征匹配度最高的目標(biāo)語音庫;
從所述第一文本位置開始,將所述后續(xù)的文本輸入使用所述目標(biāo)語音庫的離線語音合成引擎,以供所述離線語音合成引擎基于所述目標(biāo)語音庫將所述后續(xù)的文本合成音頻信號。
本實施例中,基于在線語音合成引擎的合成速率,識別在線語音合成過程是否出現(xiàn)異常,在確定在線語音合成過程出現(xiàn)異常狀況后,可以啟用離線語音合成引擎來執(zhí)行合成操作,避免了語音合成中斷的問題;而且,通過標(biāo)記在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置,使得離線語音合成引擎可以從第一文本位置開始將后續(xù)的文本合成音頻信號,使得音頻播放的過程具有連貫性、流暢性。
附圖說明
此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
圖1為本申請一實施例提供的語音合成處理方法的流程示意圖;
圖2為本申請又一實施例提供的語音合成處理方法的流程示意圖;
圖3a、圖3b為本申請又一實施例提供的兩種語音合成處理方法的流程示意圖;
圖4為本申請又一實施例提供的語音合成處理裝置的結(jié)構(gòu)示意圖;
圖5a、圖5b為本申請又一實施例提供的兩種語音合成處理裝置的結(jié)構(gòu)示意圖;
具體實施方式
為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本申請具體實施例及相應(yīng)的附圖對本申請技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護(hù)的范圍。
圖1為本申請一實施例提供的語音合成處理方法的流程示意圖,該方法包括以下步驟:
s101:在在線語音合成引擎將文本合成音頻信號的過程中,周期性采集在線語音合成引擎的合成速率。
s102:根據(jù)合成速率,確定在線語音合成過程出現(xiàn)異常狀況。
在線語音合成引擎將文本合成音頻信號的基本流程可以是,首先通過在線語音合成引擎將用戶在客戶端輸入的文本發(fā)送至在線語音合成引擎,由在線語音合成引擎執(zhí)行將文本轉(zhuǎn)換成音頻信號的操作并播放音頻信號。如此,在線語音合成引擎通過在線合成的方式,將文本合成音頻信號。
如果在在線語音合成引擎將文本合成音頻信號的過程中出現(xiàn)異常狀況,則可能會影響到在線語音合成引擎的合成過程。因此,有必要確定在線語音合成過程中,是否出現(xiàn)異常狀況。
本實施例中,語音合成處理裝置可以在在線語音合成引擎將文本合成音頻信號的過程中,周期性采集在線語音合成引擎的合成速率;進(jìn)而根據(jù)合成速率,確定在線語音合成過程出現(xiàn)異常狀況。
其中,在線語音合成引擎的合成速率可以包括文本轉(zhuǎn)換成音頻信號的速率和/或播放音頻信號的速率。為了及時確定異常情況,可以周期性采集在線語音合成引擎的合成速率。例如,若在線語音合成引擎的合成速率包括文本轉(zhuǎn)換成音頻信號的速率,則每隔2s采集一次文本轉(zhuǎn)換成音頻信號的速率。
在線語音合成引擎的合成速率可以反映合成的流暢度,進(jìn)而可以表征在線語音合成引擎的合成過程是否出現(xiàn)異常情況。基于此,可以根據(jù)采集到的合成速率,確定在線語音合成過程出現(xiàn)異常狀況。所述異常狀況包括但不限于網(wǎng)絡(luò)異常狀況、在線語音合成引擎異常狀況或者其他異常狀況。其中,網(wǎng)絡(luò)異常狀況可以包括但不限于無wifi信號、無移動網(wǎng)絡(luò)、網(wǎng)絡(luò)擁塞、網(wǎng)絡(luò)超時等狀況。當(dāng)出現(xiàn)上述異常狀況時,在線語音合成過程的流暢度都會受到影響,并會直接反應(yīng)在合成速率上,因此可以通過周期性采集在線語音合成引擎的合成速率以確定在線語音合成引擎的合成過程是否出現(xiàn)異常情況。另外,通過周期性采集在線語音合成引擎的合成速率以確定在線語音合成引擎的合成過程是否出現(xiàn)異常情況,這種異常檢測方法的執(zhí)行效率相對較高。
s103:標(biāo)記在線語音合成引擎在在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置。
s104:從第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。
在確定在線語音合成過程出現(xiàn)異常狀況后,為了使文本合成音頻信號的過程順利進(jìn)行,避免不流暢的情況出現(xiàn),可以標(biāo)記在線語音合成引擎在在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置;進(jìn)而從第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。
可選地,為了保證音頻播放的連貫性,合成到的第一文本位置可以指在在線語音合成引擎將文本合成音頻信號的過程中,出現(xiàn)異常狀況時,播放到的音頻信號之后一個音頻信號對應(yīng)的文本位置。進(jìn)而離線語音合成引擎可以接著在線語音合成引擎已播放的音頻信號,將后續(xù)的文本合成音頻信號。
例如,用戶通過在線語音合成引擎輸入的文本是“專利申請文件”,在線語音合成過程中出現(xiàn)異常狀況時,在線語音合成引擎播放到“申”,音頻信號“申”之后的一個音頻信號是“請”,則可以標(biāo)記對應(yīng)的文本“請”的位置為第一文本位置,則從文本“請”開始,啟用離線語音合成引擎將后續(xù)的文本“請文件”合成音頻信號。
可選地,離線語音合成引擎將后續(xù)的文本合成音頻信號的過程可以包括:離線語音合成引擎將后續(xù)的文本轉(zhuǎn)換成音頻信號,并播放轉(zhuǎn)換后的音頻信號。
在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號時,可以關(guān)閉在線語音合成引擎,也可以保持在線語音合成引擎的開啟狀態(tài)。
本實施例中,基于在線語音合成引擎的合成速率,識別在線語音合成過程是否出現(xiàn)異常,確定在線語音合成過程出現(xiàn)異常狀況后,可以啟用離線語音合成引擎來執(zhí)行合成操作,可以快速啟用離線語音合成引擎,避免了音頻信號合成中斷的問題;而且,通過標(biāo)記在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置,使得離線語音合成引擎可以從第一文本位置開始將后續(xù)的文本合成音頻信號,使得音頻播放的過程具有連貫性、流暢性。
在上述實施例或下述實施例中,在通過在線語音合成引擎或者離線語音合成引擎將文本合成音頻信號的過程中,首先會通過文本分析工具將待合成文本拆分成一片一片的文本片段,將一片文本片段轉(zhuǎn)換成音頻信號后,再將下一片文本片段轉(zhuǎn)換成音頻。每轉(zhuǎn)換完一段音頻信號就會播放該段音頻信號,直到播放完所有音頻信號。根據(jù)如上的合成流程,可選地,在線語音合成引擎或者離線語音合成引擎的合成速率可以包括文本轉(zhuǎn)換成音頻信號的速率和/或播放音頻信號的速率。其中,文本轉(zhuǎn)換成音頻信號的速率可以是單位時間內(nèi)轉(zhuǎn)換成音頻信號的文本片段的數(shù)量;播放音頻信號的速率可以是單位時間內(nèi)播放的音頻信號的數(shù)量。
可選地,根據(jù)合成速率,確定在線語音合成過程出現(xiàn)異常狀況的過程,可以包括以下兩種可選實施方式:
第一種實施方式:若合成速率的波動幅度大于預(yù)設(shè)的波動幅度閾值,確定在線語音合成過程出現(xiàn)異常狀況。
在實際應(yīng)用中,根據(jù)文本內(nèi)容的不同,文本合成音頻信號的合成速率不同。例如,將“詩歌”合成音頻的速率可以較慢;將“繞口令”合成音頻的速率可以較快。鑒于此,可以根據(jù)文本內(nèi)容預(yù)設(shè)基準(zhǔn)合成速率。當(dāng)然,所述基準(zhǔn)合成速率可以由用戶通過設(shè)置界面輸入或者采用默認(rèn)的合成速率。
較佳情況下,在線語音合成引擎的合成速率會比較平穩(wěn)地在基準(zhǔn)合成速率上下波動。若合成速率相對于基準(zhǔn)合成速率的波動幅度較大時,在線語音合成過程可能會出現(xiàn)異常狀況?;诖耍梢灶A(yù)設(shè)一波動幅度閾值,若合成速率的波動幅度大于預(yù)設(shè)的波動幅度閾值,確定在線語音合成過程出現(xiàn)異常狀況。
在一可選實施方式中,基準(zhǔn)合成速率包括文本轉(zhuǎn)換成音頻信號的基準(zhǔn)速率;相應(yīng)地,;波動幅度閾值包括文本轉(zhuǎn)換成音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值?;诖?,當(dāng)在線語音合成引擎的合成速率包括文本轉(zhuǎn)換成音頻信號的速率時,若文本轉(zhuǎn)換成音頻信號的速率的波動幅度大于預(yù)設(shè)的文本轉(zhuǎn)換成音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值,則確定在線語音合成過程出現(xiàn)異常狀況。
在另一可選實施方式中,基準(zhǔn)合成速率包括播放音頻信號的基準(zhǔn)速率;相應(yīng)地,波動幅度閾值包括播放音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值?;诖?,當(dāng)在線語音合成引擎的合成速率包括播放音頻信號的速率時,若播放音頻信號的速率的波動幅度大于預(yù)設(shè)的播放音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值,則確定在線語音合成過程出現(xiàn)異常狀況。
在又一可選實施方式中,基準(zhǔn)合成速率包括文本轉(zhuǎn)換成音頻信號的基準(zhǔn)速率和播放音頻信號的基準(zhǔn)速率;相應(yīng)地,波動幅度閾值包括文本轉(zhuǎn)換成音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值和播放音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值。基于此,在線語音合成引擎的合成速率包括文本轉(zhuǎn)換成音頻信號的速率和播放音頻信號的速率時,若存在一種合成速率的波動幅度大于相應(yīng)的預(yù)設(shè)波動幅度閾值,就可以確定在線語音合成過程出現(xiàn)異常狀況。
第二種實施方式:若合成速率小于預(yù)設(shè)的速率閾值,確定在線語音合成過程出現(xiàn)異常狀況。
一般來說,在線語音合成引擎會以一定速率執(zhí)行合成過程,不會太慢。當(dāng)在線語音合成引擎的合成速率過慢,甚至停止的時候,意味著在線語音合成過程出現(xiàn)異常狀況??蛇x地,預(yù)設(shè)一速率閾值,若合成速率小于預(yù)設(shè)的速率閾值,可以確定在線語音合成過程出現(xiàn)異常狀況。
可選地,當(dāng)在線語音合成引擎的合成速率包括文本轉(zhuǎn)換成音頻信號的速率時,若文本轉(zhuǎn)換成音頻信號的速率小于預(yù)設(shè)的文本轉(zhuǎn)換成音頻信號的速率閾值,確定在線語音合成過程出現(xiàn)異常狀況?;蛘?,當(dāng)在線語音合成引擎的合成速率包括播放音頻信號的速率時,若播放音頻信號的速率小于預(yù)設(shè)的播放音頻信號的速率閾值,確定在線語音合成過程出現(xiàn)異常狀況。又或者在線語音合成引擎的合成速率包括文本轉(zhuǎn)換成音頻信號的速率和播放音頻信號的速率時,若存在一種合成速率小于相應(yīng)的預(yù)設(shè)速率閾值,確定在線語音合成過程出現(xiàn)異常狀況。
在確定在線語音合成過程出現(xiàn)異常狀況后,可以標(biāo)記在線語音合成引擎在在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置;以及從第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。
除了上述兩種確定在線語音合成過程出現(xiàn)異常狀況的實施方式外,還可以在在線語音合成引擎將文本合成音頻信號的過程中,周期性采集網(wǎng)絡(luò)參數(shù)。根據(jù)周期性采集的網(wǎng)絡(luò)參數(shù),確定在線語音合成過程出現(xiàn)異常狀況。其中,網(wǎng)絡(luò)參數(shù)可以是能夠表征網(wǎng)路通暢度的參數(shù),例如可用網(wǎng)絡(luò)帶寬或者網(wǎng)絡(luò)延遲時間等??蛇x地,可以在在線語音合成引擎將文本合成音頻信號的過程中,周期性測試可用網(wǎng)絡(luò)帶寬或網(wǎng)絡(luò)延遲時間,若可用網(wǎng)絡(luò)帶寬小于一帶寬閾值時,確定在線語音合成過程出現(xiàn)異常狀況;或者網(wǎng)絡(luò)延遲時間大于一時間閾值時,確定在線語音合成過程出現(xiàn)異常狀況。
與上述兩種實施方式相反,若合成速率的波動幅度不大于預(yù)設(shè)的波動幅度閾值,或者若合成速率不小于預(yù)設(shè)的速率閾值,則可以確定在線語音合成過程未出現(xiàn)異常狀況。此時,可以繼續(xù)通過在線語音合成音頻將后續(xù)的文本合成音頻信號。
本實施例中,通過周期性采集在線語音合成引擎的合成速率,結(jié)合預(yù)設(shè)波動幅度閾值以及速率閾值,可以及時確定在線語音合成過程出現(xiàn)異常狀況,有利于避免音頻合成中斷或卡頓的情況。
在上述實施例或下述實施例中,從第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程,如圖2所示,可以包括以下步驟:
s1041:根據(jù)在線語音合成引擎合成音頻信號時采用的音頻特征,從至少一個語音庫中選擇與音頻特征匹配度最高的目標(biāo)語音庫。
s1042:從第一文本位置開始,將后續(xù)的文本輸入使用目標(biāo)語音庫的離線語音合成引擎,以供離線語音合成引擎基于目標(biāo)語音庫將后續(xù)的文本合成音頻信號。
不論是在線語音合成引擎還是離線語音合成引擎都需要通過語音庫合成音頻信號。對于任一種語音合成引擎來說,凡是符合該語音合成引擎標(biāo)準(zhǔn)的任何一款語音庫,都可以被該語音合成引擎調(diào)用來合成音頻信號??蛇x地,一種語音合成引擎可以使用多種語音庫,一種語音庫可以被多個語音合成引擎使用。
語音庫可以被稱之為發(fā)音字典,包括各語音單元的聲學(xué)參數(shù)以及對應(yīng)的音段、韻律等標(biāo)注屬性。其中,聲學(xué)參數(shù)可以包括聲音的音量參數(shù)、聲音的頻率參數(shù)等。當(dāng)在線語音合成引擎通過語音庫合成音頻信號時,采用的音頻特征可以是在線語音合成引擎使用的語音庫中各語音單元的共有特征,如男聲、女聲、音量大小、朗讀者等。
為了提高音頻合成的流暢度,減小用戶聽覺的差異感,在啟用離線語音合成引擎時,語音合成處理裝置可以首先向安裝在客戶端的至少一個離線語音合成引擎發(fā)送開啟指令,至少一個離線語音合成引擎響應(yīng)于接收到的開啟指令,執(zhí)行初始化的操作,并加載所使用的至少一個語音庫。同時,監(jiān)測至少一個離線語音合成引擎的初始化操作,以及加載所使用的至少一個語音庫的操作。
若監(jiān)測到所有的離線語音合成引擎初始化失敗,或者語音庫加載失敗時,可以從第一文本位置開始,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號。
若監(jiān)測到離線語音合成引擎初始化成功,以及語音庫加載成功時,可以根據(jù)在線語音合成引擎合成音頻信號時采用的音頻特征,從至少一個語音庫中選擇與音頻特征匹配度最高的目標(biāo)語音庫,以供離線語音合成引擎基于目標(biāo)語音庫將后續(xù)的文本合成音頻信號。需要說明的是,此處的語音庫指的是加載成功的語音庫。
可選地,可以將每個待選語音庫中的各語音單元的共有特征與音頻特征相比,計算每個待選語音庫的匹配度,將匹配度最高的語音庫作為目標(biāo)語音庫。進(jìn)一步可選地,可以將每個待選語音庫中各語音單元的每個共有特征與對應(yīng)的音頻特征一一相比,計算每個共有特征的相似度,綜合每個共有特征的相似度以得到每個待選語音庫的匹配度,將匹配度最高的語音庫作為目標(biāo)語音庫。其中,綜合每個共有特征的相似度的方法可以包括但不限于計算每個共有特征的相似度的和、選擇最大的相似度或者計算每個共有特征的相似度的加權(quán)平均值,其中,可以根據(jù)共有特征的重要程度賦予共有特征相應(yīng)的權(quán)重。
語音合成處理裝置選定目標(biāo)語音庫后,可以從第一文本位置開始,將后續(xù)的文本輸入使用目標(biāo)語音庫的離線語音合成引擎,以供離線語音合成引擎基于目標(biāo)語音庫將后續(xù)的文本合成音頻信號。
本實施例中,通過選擇與音頻特征匹配度最高的目標(biāo)語音庫,使得離線語音合成引擎與在線語音合成引擎采用的音頻特征比較接近,可以增加音頻合成的流暢度,減小用戶聽覺的差異感。
在一可選實施方式中,為避免使用離線語音合成引擎合成音頻信號的過程中,音頻合成不流暢、中斷的問題,在從第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號(即步驟s104)之后,如圖3a所示,所述語音合成處理方法還可以包括以下步驟:
s105:在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測離線語音合成過程是否出現(xiàn)異常狀況;若判斷結(jié)果為是,即監(jiān)測到離線語音合成過程出現(xiàn)異常狀況,則執(zhí)行步驟s106;若判斷結(jié)果為否,即監(jiān)測到離線語音合成過程未出現(xiàn)異常狀況,則執(zhí)行步驟s108。
s106:標(biāo)記離線語音合成引擎在離線語音合成過程出現(xiàn)異常狀況時合成到的第二文本位置。
s107:從第二文本位置開始,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束此次操作。
s108:繼續(xù)使用離線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束此次操作。
可選地,在步驟s105中,具體可以包括:在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測離線語音合成引擎使用的語音庫中是否包括待合成的文本片段對應(yīng)的語音單元;若判斷結(jié)果為否,確定離線語音合成過程出現(xiàn)異常狀況;若判斷結(jié)果為是,確定離線語音合成過程未出現(xiàn)異常狀況。
其中,待合成的文本片段可以是,輸入到離線語音合成引擎中的文本的第一個文本片段。若監(jiān)測到離線語音合成引擎使用的語音庫中不包括第一個文本片段對應(yīng)的語音單元,可以確定離線語音合成過程出現(xiàn)異常狀況;若監(jiān)測到離線語音合成引擎使用的語音庫中包括第一個文本片段對應(yīng)的語音單元,可以確定離線語音合成過程未出現(xiàn)異常狀況。
需要說明的是,待合成的文本片段還可以是,輸入到離線語音合成引擎中的文本的第二個文本片段、第三個文本片段等??蛇x地,可以根據(jù)合成速率或者合成進(jìn)度,確定待合成的文本片段。
當(dāng)確定離線語音合成過程出現(xiàn)異常狀況時,標(biāo)記離線語音合成引擎在離線語音合成過程出現(xiàn)異常狀況時合成到的第二文本位置;從第二文本位置開始,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號。其中,第二文本位置可以指離線語音合成引擎在離線語音合成過程中,出現(xiàn)異常狀況時,播放到的音頻信號之后一個音頻信號對應(yīng)的文本位置。
啟用在線語音合成引擎將后續(xù)的文本合成音頻信號時,語音合成處理裝置可以首先向在線語音合成引擎發(fā)送開啟指令,所述在線語音合成引擎響應(yīng)于接收到的開啟指令,執(zhí)行初始化的操作,并與服務(wù)器建立網(wǎng)絡(luò)鏈接。同時,監(jiān)測在線語音合成引擎的初始化操作,以及與服務(wù)器建立網(wǎng)絡(luò)鏈接的操作。
若監(jiān)測到在線語音合成引擎初始化失敗,或者與服務(wù)器建立網(wǎng)絡(luò)鏈接失敗時,可以從第二文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。若監(jiān)測到在線語音合成引擎初始化成功,以及與服務(wù)器建立網(wǎng)絡(luò)鏈接時,可以從第二文本位置開始,使用在線語音合成引擎將后續(xù)的文本合成音頻信號。
可選地,當(dāng)監(jiān)測到離線語音合成過程未出現(xiàn)異常狀況時,離線語音合成引擎可以繼續(xù)將后續(xù)的文本合成音頻信號,如步驟s108所述。
本實施例中,通過監(jiān)測到離線語音合成引擎在離線語音合成過程出現(xiàn)異常狀況時,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,避免了音頻信號合成不流暢、甚至中斷的問題。
鑒于在線語音合成引擎合成的音頻信號質(zhì)量一般較高,為了提高音頻信號的質(zhì)量,在從第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號(即步驟s104)之后,如圖3b所示,所述語音合成處理方法還可以包括以下步驟:
s109:在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測在線語音合成過程中出現(xiàn)的異常狀況是否消除。若判斷結(jié)果為是,即監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除,則執(zhí)行步驟s110;若判斷結(jié)果為否,即監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況尚未消除,則執(zhí)行步驟s112。
s110:標(biāo)記離線語音合成引擎在監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時合成到的第三文本位置。
s111:從第三文本位置開始,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束本次操作。
s112:繼續(xù)使用離線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束此次操作。
可選地,在步驟s109中,具體可以包括:在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,向在線語音合成引擎發(fā)送探測信號;若在設(shè)定時間內(nèi)收到在線語音合成引擎針對探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況消除;若未在設(shè)定時間內(nèi)收到在線語音合成引擎針對探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況尚未消除。
其中,探測信號可以指攜帶測試文本片段的信號,所述測試文本片段用于測試在線語音合成引擎能否正常合成音頻信號。在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,可以向在線語音合成引擎發(fā)送探測信號,在線語音合成引擎接收到探測信號攜帶的測試文本片段后,將測試文本片段合成音頻信號,再將合成后的音頻信號作為響應(yīng)信號返回。
若在設(shè)定時間內(nèi)收到在線語音合成引擎針對探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況消除;若未在設(shè)定時間內(nèi)收到在線語音合成引擎針對探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況尚未消除。
若監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時,標(biāo)記離線語音合成引擎在監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時合成到的第三文本位置;從第三文本位置開始,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號。其中,第三文本位置可以指在線語音合成過程中出現(xiàn)的異常狀況消除時,播放到的音頻信號之后一個音頻信號對應(yīng)的文本位置。
啟用在線語音合成引擎將后續(xù)的文本合成音頻信號時,語音合成處理裝置可以首先向在線語音合成引擎發(fā)送開啟指令,所述在線語音合成引擎響應(yīng)于接收到的開啟指令,執(zhí)行初始化的操作,并與服務(wù)器建立網(wǎng)絡(luò)鏈接。同時,監(jiān)測在線語音合成引擎的初始化操作,以及與服務(wù)器建立網(wǎng)絡(luò)鏈接的操作。
若監(jiān)測到在線語音合成引擎初始化失敗,或者與服務(wù)器建立網(wǎng)絡(luò)鏈接失敗時,可以從第三文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。若監(jiān)測到在線語音合成引擎初始化成功,以及與服務(wù)器建立網(wǎng)絡(luò)鏈接時,可以從第三文本位置開始,使用在線語音合成引擎將后續(xù)的文本合成音頻信號。
可選地,當(dāng)監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況尚未消除時,可以繼續(xù)使用離線語音合成引擎將后續(xù)的文本合成音頻信號,如步驟s112所述。當(dāng)然,如果監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時,也可以繼續(xù)使用離線語音合成引擎將后續(xù)的文本合成音頻信號。
本實施例中,通過監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,有效提高了音頻信號的質(zhì)量。
本申請實施例提供一種語音合成處理裝置400,如圖4所示,包括:
采集模塊401,用于在在線語音合成引擎將文本合成音頻信號的過程中,周期性采集在線語音合成引擎的合成速率。
確定模塊402,用于根據(jù)采集模塊401采集的合成速率,確定在線語音合成過程出現(xiàn)異常狀況。
第一標(biāo)記模塊403,用于標(biāo)記在線語音合成引擎在確定模塊402確定的在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置。
第一啟用模塊404,用于從第一標(biāo)記模塊403標(biāo)記的第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號。
其中,在線語音合成引擎的合成速率可以包括文本轉(zhuǎn)換成音頻信號的速率和/或播放音頻信號的速率。
本實施例中,基于在線語音合成引擎的合成速率,識別在線語音合成過程是否出現(xiàn)異常,確定在線語音合成過程出現(xiàn)異常狀況后,可以啟用離線語音合成引擎來執(zhí)行合成操作,可以快速啟用離線語音合成引擎,避免了音頻信號合成中斷的問題;而且,通過標(biāo)記在線語音合成過程出現(xiàn)異常狀況時合成到的第一文本位置,進(jìn)而使得離線語音合成引擎可以從第一文本位置開始將后續(xù)的文本合成音頻信號,使得音頻播放的過程具有連貫性、流暢性。
可選地,確定模塊402在根據(jù)采集模塊401周期性采集的合成速率,確定在線語音合成過程出現(xiàn)異常狀況時,具體還用于:
若合成速率的波動幅度大于預(yù)設(shè)的波動幅度閾值,確定在線語音合成過程出現(xiàn)異常狀況;或者,若合成速率小于預(yù)設(shè)的速率閾值,確定在線語音合成過程出現(xiàn)異常狀況。
可選地,波動幅度閾值包括文本轉(zhuǎn)換成音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值和/或播放音頻信號的基準(zhǔn)速率對應(yīng)的波動幅度閾值。
可選地,速率閾值包括文本轉(zhuǎn)換成音頻信號的速率閾值和/或播放音頻信號的速率閾值。
可選地,采集模塊401還用于在在線語音合成引擎將文本合成音頻信號的過程中,周期性采集網(wǎng)絡(luò)參數(shù)。確定模塊402可以根據(jù)采集模塊401周期性采集的網(wǎng)絡(luò)參數(shù),確定在線語音合成過程出現(xiàn)異常狀況。
本實施例中,通過周期性采集在線語音合成引擎的合成速率,結(jié)合預(yù)設(shè)波動幅度閾值以及速率閾值,可以及時確定在線語音合成過程出現(xiàn)異常狀況,有利于避免音頻合成中斷或卡頓的情況。
可選地,第一啟用模塊404在從第一標(biāo)記模塊403標(biāo)記的第一文本位置開始,啟用離線語音合成引擎將后續(xù)的文本合成音頻信號時,具體還用于:
根據(jù)在線語音合成引擎合成音頻信號時采用的音頻特征,從至少一個語音庫中選擇與音頻特征匹配度最高的目標(biāo)語音庫;
從第一文本位置開始,將后續(xù)的文本輸入使用目標(biāo)語音庫的離線語音合成引擎,以供離線語音合成引擎基于目標(biāo)語音庫將后續(xù)的文本合成音頻信號。
可選地,第一啟用模塊404可以將每個待選語音庫中的各語音單元的共有特征與音頻特征相比,計算每個待選語音庫的匹配度,將匹配度最高的語音庫作為目標(biāo)語音庫。進(jìn)一步可選地,第一啟用模塊404可以將每個待選語音庫中各語音單元的每個共有特征與相應(yīng)的音頻特征一一相比,計算每個共有特征的相似度,綜合每個共有特征的相似度以得到每個待選語音庫的匹配度,將匹配度最高的語音庫作為目標(biāo)語音庫。
本實施例中,通過選擇與音頻特征匹配度最高的目標(biāo)語音庫,使得離線語音合成引擎與在線語音合成引擎采用的音頻特征比較接近,可以增加音頻合成的流暢度,減小用戶聽覺的差異感。
可選地,如圖5a所示,所述語音合成處理裝置400還可以包括第一監(jiān)測模塊405、第二標(biāo)記模塊406以及第二啟用模塊407。
其中,第一監(jiān)測模塊405,用于在第一啟用模塊404啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測離線語音合成過程是否出現(xiàn)異常狀況。
第二標(biāo)記模塊406,用于若第一監(jiān)測模塊405監(jiān)測到離線語音合成過程出現(xiàn)異常狀況,標(biāo)記離線語音合成引擎在離線語音合成過程出現(xiàn)異常狀況時合成到的第二文本位置。
第二啟用模塊407,用于從第二標(biāo)記模塊406標(biāo)記的第二文本位置開始,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束此次操作。
可選地,在第一監(jiān)測模塊405在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測離線語音合成過程是否出現(xiàn)異常狀況時,具體用于:
在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測所述離線語音合成引擎使用的語音庫中是否包括待合成的文本片段對應(yīng)的語音單元;若判斷結(jié)果為否,確定離線語音合成過程出現(xiàn)異常狀況;若判斷結(jié)果為是,確定離線語音合成過程未出現(xiàn)異常狀況。
可選地,當(dāng)?shù)谝槐O(jiān)測模塊405確定離線語音合成過程未出現(xiàn)異常狀況時,第一啟用模塊404還用于繼續(xù)使用離線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束此次操作。
本實施例中,通過監(jiān)測到離線語音合成引擎在離線語音合成過程出現(xiàn)異常狀況時,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,避免了音頻信號合成不流暢、甚至中斷的問題。
可選地,如圖5b所示,所述語音合成處理裝置400還可以包括第二監(jiān)測模塊408、第三標(biāo)記模塊409以及第三啟用模塊410。
其中,第二監(jiān)測模塊408,用于在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測在線語音合成過程中出現(xiàn)的異常狀況是否消除。
第三標(biāo)記模塊409,用于若第二監(jiān)測模塊408監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時,標(biāo)記離線語音合成引擎在監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時合成到的第三文本位置。
第三啟用模塊410,用于從第三標(biāo)記模塊409標(biāo)記的第三文本位置開始,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束此次操作。
可選地,第二監(jiān)測模塊408在啟用所述離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,監(jiān)測在線語音合成過程中出現(xiàn)的異常狀況是否消除的過程中,具體用于:
在啟用離線語音合成引擎將后續(xù)的文本合成音頻信號的過程中,向在線語音合成引擎發(fā)送探測信號;若在設(shè)定時間內(nèi)收到在線語音合成引擎針對所述探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況消除;若未在設(shè)定時間內(nèi)收到在線語音合成引擎針對所述探測信號返回的響應(yīng)信號,確定在線語音合成過程中出現(xiàn)的異常狀況尚未消除。
可選地,當(dāng)?shù)诙O(jiān)測模塊408監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況尚未消除時,第一啟用模塊404還用于繼續(xù)使用離線語音合成引擎將后續(xù)的文本合成音頻信號,并結(jié)束此次操作。
本實施例中,通過監(jiān)測到在線語音合成過程中出現(xiàn)的異常狀況消除時,啟用在線語音合成引擎將后續(xù)的文本合成音頻信號,有效提高了音頻信號的質(zhì)量。
所述裝置與前述的方法流程描述對應(yīng),不足之處參考上述方法流程的敘述,不再一一贅述。
在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng),如ios、安卓,也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。