王國梁 陳夢楠 陳蕾
摘要:顛覆性設(shè)計的端到端語音合成系統(tǒng)Tacotron 2,目前僅能處理英文.致力于對Tacotron2進行多方位改進,設(shè)計了一種中文語音合成方案,主要包括:針對漢字不表音、變調(diào)和多音字等問題,添加預(yù)處理模塊,將中文轉(zhuǎn)化為注音字符;針對現(xiàn)有中文訓(xùn)練語料不足的情況,使用預(yù)訓(xùn)練解碼器,在較少語料上獲得了較好音質(zhì);針對中文語音合成急促停頓問題,采用對交叉熵損失進行加權(quán),并用多層感知機代替變線性變換對停止符進行預(yù)測的策略,獲得了有效改善;另外通過添加多頭注意力機制進一步提高了中文語音合成音質(zhì).梅爾頻譜、梅爾倒譜距離等的實驗對比結(jié)果表明了方案的有效性:可以令Tacotron 2較好地適應(yīng)中文語音合成的要求.
關(guān)鍵詞:語音合成; 多頭注意力;Tacotron 2
中圖分類號:TP391
文獻標(biāo)志碼:A
DOI: 10.3969/j.issn.1000-5641.2019.04.011
0 簡介
語音合成,又稱文語轉(zhuǎn)換(Text To Speech,TTS),是一種可以將任意輸入文本轉(zhuǎn)換成相應(yīng)語音的技術(shù)。傳統(tǒng)語音合成系統(tǒng)通常包括前端和后端兩個部分。前端主要對輸入文本進行分析,提取某些語言學(xué)信息:中文合成系統(tǒng)的前端部分一般包含文本正則化、分詞、詞性預(yù)測、多音字消歧、韻律預(yù)測等模塊[1].后端則通過一定方法,例如參數(shù)合成或拼接合成、生成語音波形.
參數(shù)合成指基于統(tǒng)計參數(shù)建模的語音合成[2].該方法在訓(xùn)練階段對語言聲學(xué)特征、時長信息進行上下文相關(guān)建模,在合成階段通過時長模型和聲學(xué)模型預(yù)測聲學(xué)特征參數(shù),對聲學(xué)特征參數(shù)做后處理,最終利用聲碼器恢復(fù)語音波形。在語音庫相對較小的情況下,這類方法可能得到較穩(wěn)定的合成效果.其缺點是往往存在聲學(xué)特征參數(shù)“過平滑”問題,另外聲碼器也可能對音質(zhì)造成損傷。
拼接合成指基于單元挑選和波形拼接的語音合成[3].其訓(xùn)練階段與參數(shù)合成方式的基本相同,但在合成階段通過模型計算代價來指導(dǎo)單元挑選,并采用動態(tài)規(guī)劃算法選出最優(yōu)單元序列,最后對選出的單元進行能量規(guī)整和波形拼接。拼接合成直接使用真實的語音片段,能最大限度保留語音音質(zhì).缺點是一般需要較大音庫,且無法保證領(lǐng)域外文本的合成效果.
傳統(tǒng)的語音合成系統(tǒng)都是相對復(fù)雜的,例如:前端需要較強的語言學(xué)背景,不同語言的語言學(xué)知識差異明顯,通常需要特定領(lǐng)域的專家支持:后端的參數(shù)系統(tǒng)需要對語音的發(fā)聲機理有一定了解,而傳統(tǒng)參數(shù)系統(tǒng)建模時難以避免信息損失,限制了合成語音表現(xiàn)力的提升:同在后端的拼接系統(tǒng)對語音庫要求較高,也常需人工介入指定挑選規(guī)則和參數(shù)[4].
為改善這些問題,新的語音合成方式應(yīng)運而生.其中端到端合成便是一種非常重要的發(fā)展趨勢.在這種模式下,將文本或者注音字符輸入系統(tǒng),而系統(tǒng)則直接輸出音頻波形.這降低了對語言學(xué)知識的要求,有利于表現(xiàn)更豐富的發(fā)音風(fēng)格和韻律感,也可以相對方便地支持不同語種.
近年來語音合成發(fā)展迅猛,如谷歌的Tacotron、Tacotron 2、WaveNet、ParallelWaveNet[5-8],百度的DeepVoice、DeepVoice 2、ClariNet[9-11],英偉達的WaveGlow[12]等.Tacotron是第一個真正意義上的端到端語音合成系統(tǒng),它允許輸入文本或注音字符,輸出線性譜,再經(jīng)過聲碼器Griffin-Lim轉(zhuǎn)換為波形.Tacotron 2在Tacotron的基礎(chǔ)上進行了模型簡化,去掉了復(fù)雜的CBHG(1-D Convolution Bank+Highway Network+BidirectionalGRU (Gated Recurrent Unit》結(jié)構(gòu),使用了新穎的注意力機制Location-Sensitive Attention,提高了對齊穩(wěn)定性.WaveNet及其之后的Parallel WaveNet并非端到端系統(tǒng),它們依賴其他模塊對輸入進行預(yù)處理,提供特征.仿照PixelRNN圖像生成方式,WaveNet依據(jù)之前采樣點來生成下一采樣點,結(jié)構(gòu)為帶洞卷積[13].百度的ClariNet使用單高斯簡化ParallelWaveNet的KL (Kullback-Leibler)目標(biāo)函數(shù),改進了蒸餾法算法,使得結(jié)構(gòu)更簡單穩(wěn)定,并且通過Bridge-net連接了特征預(yù)測網(wǎng)絡(luò)和WaveNet,實現(xiàn)了端到端合成.
自2017年以來,端到端語音合成的研究進入了超高速發(fā)展時期,谷歌、百度和英偉達等研究機構(gòu)不斷推陳出新,在合成速度、風(fēng)格遷移、合成自然度方面精益求精。然而,根據(jù)領(lǐng)域內(nèi)文獻資料,端到端語音合成目前僅能合成英文,未見成型的中文系統(tǒng).相較英文,中文語音合成存在一些難點,例如:漢字不表音:中文存在大量多音字和變調(diào)現(xiàn)象:中文發(fā)音韻律較英文發(fā)音更為復(fù)雜,如兒化音等.
本文設(shè)計了一種中文語音合成方案,基于Tacotron 2在以下幾個方面進行了改進.
(1)針對漢字不表音、變調(diào)和多音字等問題,添加預(yù)處理模塊,將中文轉(zhuǎn)化為注音字符.
(2)使用中文音頻語料預(yù)訓(xùn)練Tacotron 2的解碼器,之后進行微調(diào),顯著減少拼音中文音頻對所需的訓(xùn)練數(shù)據(jù)量.
(3)使用多層感知機代替停止符(Stop Token)處的線性變換,顯著減少合成急促停頓現(xiàn)象.
(4)利用Transformer中的多頭注意力(MultiHead Attention)改進Tacotron 2的位置敏感注意力(Locative Sensitive Attention)[14],使其能夠捕獲到更多語音信息,提升合成音質(zhì).
1 相關(guān)工作
1.1 序列到序列生成模型
序列到序列的生成模型[15]將輸入序列(x1,x2,…,xt)轉(zhuǎn)化為輸出序列(y1,y2,…,yr).機器翻譯通常先將源語言編碼到隱空間,然后再解碼到目標(biāo)語言,有其中,h、S分別是編碼器和解碼器的隱狀態(tài),c是由注意力機制計算得來的上下文向量,由編碼器隱狀態(tài)h加權(quán)進行計算,即
1.2 Tacotron 2
Tacotron 2將英文作為輸入,直接從英語文本生成聲音波形,如圖1所示:輸入文本經(jīng)詞嵌入后首先送入3層CNN (Convolutional Neural Network)以獲取序列中的上下文信息,接著進入雙向LSTM(Long Short-Term Memory)組成的編碼器.梅爾頻譜(在訓(xùn)練階段,每次送入固定長度的真實頻譜;在推斷階段,每次送入上一個時間步的輸出)首先進入預(yù)處理網(wǎng)絡(luò),預(yù)處理網(wǎng)絡(luò)的輸出與上一個時間步的上下文向量拼接送入2層LSTM,LSTM的輸出被用作計算本時間步的上下文向量,并且經(jīng)線性映射后用來預(yù)測停止符和梅爾頻譜.為了提取更為高維的特征,用于預(yù)測梅爾頻譜的LSTM輸出被帶殘差的5層CNN組成的后處理網(wǎng)絡(luò)提純優(yōu)化,最后輸出梅爾頻譜[6].
1.3 Transformer
如圖2所示,Transformer是一種完全依賴注意力機制的端到端序列生成模型[14],在機器翻譯領(lǐng)域顯示出了其優(yōu)異的性能.Transformer模型的編碼器由Ⅳ個基本層堆疊而成:每個基本層包含2個子層,第一子層是1個Attention,第二子層是1個全連接前向神經(jīng)網(wǎng)絡(luò).Transformer模型的解碼器也由Ⅳ個基本層堆疊:每個基本層除了與編碼器相同的2個子層外,還增加了1個掩碼多頭注意力子層,所有子層都引入了殘差邊和Layer Normalization.Transformer的編、解碼器都含有的多頭注意力機制借鑒了CNN中多個卷積核的疊加,實質(zhì)上是將注意力機制獨立執(zhí)行幾遍后拼接,以更充分地抽取序列中的信息.
2 中文語音合成方案
與英文語音合成相比,中文語音合成主要存在以下幾個難點.
(1)無法直接使用中文作為文本輸入,需要添加文本拼音/國際音標(biāo)轉(zhuǎn)換器,并且要求在該預(yù)處理階段解決中文變調(diào)和多音字問題.
(2)對語料要求較高,需要保證說話人單一,幅度變化小,背景噪音小等.相較Tacotron2訓(xùn)練高音質(zhì)的英文語音至少達25 h[16],目前高質(zhì)量中文語音合成語料較少.
(3)中文發(fā)音韻律變化較英文復(fù)雜.
(4)中文語音合成中,往往發(fā)生語音生成急促停頓的現(xiàn)象,尤其常見最后一個字無法正常發(fā)音的問題.
針對上述問題,本文提出了一個基于Tacotron 2的中文端到端語音合成方案,如圖3所示,并就文本拼音轉(zhuǎn)換器(Text to Phoneme)、預(yù)訓(xùn)練模塊、注意力機制、停止符預(yù)測及后處理等進行了特殊設(shè)計.
2.1 文本一拼音轉(zhuǎn)換器
不同于英文,漢字不含發(fā)音信息,可考慮先將中文轉(zhuǎn)化為音素,實驗證明,將中文轉(zhuǎn)化為拼音或國際音標(biāo),合成后音質(zhì)相差不大.出于更加熟悉、便于糾錯等原因,本文最終采用拼音.
中文中存在變調(diào)現(xiàn)象,如“第一”“十一”中的“一”讀陰平,“一致”“一切”中讀陽平,“一絲不茍”“一本萬利”中讀去聲,而“讀一讀”“看一看”則讀輕聲.考慮到變調(diào)現(xiàn)象在中文中雖然存在,但比例并不高,本文采用規(guī)則匹配的方法解決.對于多音字問題,本文首先對輸入文本進行中文分詞,然后利用詞庫對多音字進行正確注音.通過上述方法,基本可以正確地將中文文本轉(zhuǎn)化為表音字符,然后送入模型進行語音生成.
2.2 預(yù)訓(xùn)練
目前領(lǐng)域內(nèi)的高質(zhì)量拼音音頻合成語料稀少,而Tacotron 2對語料的需要量卻較大.在本文中,解碼器使用中文音頻進行初始化訓(xùn)練.在預(yù)訓(xùn)練階段,解碼器以教師指導(dǎo)模式預(yù)測下一個語音幀,即以上一幀預(yù)測下一幀音頻,不需要對應(yīng)的文本輸入,這要求解碼器在幀級別學(xué)習(xí)聲學(xué)自回歸模型.需要說明的是,預(yù)訓(xùn)練階段解碼器僅依靠上一幀進行預(yù)測,而微調(diào)階段則需要基于解碼器的額外輸出進行推斷,這可能帶來訓(xùn)練和推斷的不匹配.
實驗結(jié)果表明,模型能有效學(xué)習(xí)語音中的聲學(xué)信息,并通過少量語料得到較好音質(zhì).
2.3 多頭注意力機制
為了適用中文復(fù)雜的韻律變化,本文將Tacotron 2中Location-Sensitive Attention擴展為MultiHead Location-Sensitive Attention,即
多頭注意力將S、H、F通過參數(shù)矩陣映射再進行Attention運算,然后把多個子注意力結(jié)果拼接起來.類似于CNN中的多卷積核對一張圖片提取特征的過程,能夠有效獲取序列中的信息,從而使解碼器預(yù)測音頻時,字與字間的銜接以及整個句子的韻律變化更接近真實人聲.
2.4 停止符預(yù)測和后處理網(wǎng)絡(luò)
不同于Tacotron 2統(tǒng)一用線性變換預(yù)測梅爾頻譜和停止符,本文分別使用線性變換預(yù)測梅爾頻譜,用多層感知機(Multi-Layer Perceptron,MLP)預(yù)測停止符,并且使用后處理網(wǎng)絡(luò)優(yōu)化重建梅爾頻譜.
在中文合成過程中,語音常常遇到戛然而止的現(xiàn)象,影響語音流暢性.類似問題在英文合成實踐中也存在,但并不明顯.這種停頓感主要是由于停止符預(yù)測的正負樣本不平衡造成的.本文通過將線性變換改為3層MLP并在二元交叉熵上加權(quán)f實驗中將該權(quán)重設(shè)置為6.0),較好地解決了生成過程突然停頓的問題.
另外,由于Tacotron 2的WaveNet生成較慢,本文使用Griffin-Lim作為聲碼器[17],同時在原有的后處理網(wǎng)絡(luò)添加CBHG,顯著提高了音質(zhì).
3 實驗結(jié)果與分析
本文通過實驗驗證了本文所提框架的有效性.
3.1 訓(xùn)練步驟
使用4塊英偉達P100訓(xùn)練模型,利用8h私有的拼音音頻語料和50 h中文音頻作為訓(xùn)練數(shù)據(jù)集.私有數(shù)據(jù)集的前后均保持100 ms靜音間隔,其中批處理規(guī)模(Batch Size)設(shè)置為32,過小的規(guī)模將造成訓(xùn)練不穩(wěn)定并影響合成音質(zhì),過大則容易引發(fā)內(nèi)存溢出問題.
3.2 文本拼音轉(zhuǎn)換器
Tacotron 2直接將英文文本輸入模型進行訓(xùn)練,因為英文字母在單詞中的發(fā)音變化較少,如字母“a)的發(fā)音只有[ei]、[a:]和[ae].但即便拋開中文漢字的多音字問題,希望模型直接學(xué)習(xí)每個漢字的發(fā)音都是不現(xiàn)實的:將漢字轉(zhuǎn)化為注音字符,如國際音標(biāo)或拼音,是較可行的思路.然而如果在數(shù)據(jù)預(yù)處理過程中,注音標(biāo)注若出錯,合成結(jié)果必將失敗,本文通過規(guī)則匹配法基本解決了這類問題,但該方法也存在局限性,仍有少量(低于4%)漢字注音出現(xiàn)錯誤.
3.3 Griffin-Lim設(shè)置
由于WaveNet生成速度過慢的問題尚未解決,本文選用Griffin-Lim作為模型的聲碼器,迭代次數(shù)設(shè)置為30.Tacotron 2直接使用帶殘差的5層CNN作為后處理網(wǎng)絡(luò),但其對梅爾頻譜的優(yōu)化不充分,因此添加CBHG進一步提取特征以有效提升音質(zhì),在實驗中,通過將原始的錄音音頻轉(zhuǎn)化為梅爾頻譜,再使用Griffin-Lim轉(zhuǎn)換回來,發(fā)現(xiàn)有明顯的音質(zhì)損傷,可以推斷Griffin-Lim是影響音質(zhì)的瓶頸.另外為了進一步減少信息損失,本文將梅爾頻譜的輸出維度由80改為160.
3.4 合成音頻樣例
本文提供了一些中文合成樣例,參見https://github.com/cnlinxi/tacotron2/tree/master/samples.這些樣例由任意給定的中文文本通過文本拼音轉(zhuǎn)換器轉(zhuǎn)化為拼音后,輸入已經(jīng)訓(xùn)練好的模型合成.模型訓(xùn)練利用8h拼音音頻樣本和50 h的音頻樣本,訓(xùn)練步數(shù)為15萬步,每步耗時約3.3 s.
3.5 剝離分析
3.5.1 預(yù)訓(xùn)練
當(dāng)前公開的質(zhì)量較高的中文語音合成語料為THCHS_30[18],該數(shù)據(jù)集音頻時長約為30 h,其對應(yīng)的拼音標(biāo)注較準(zhǔn)確.但是THCHS-30中有多個說話人,男女聲混雜,背景噪音很大.利用語料訓(xùn)練后合成的語音有的音頻為男聲,有的為女聲,甚至同一句話一半為男聲一半為女聲,并且合成后音質(zhì)較差.鑒于上述,本文考慮使用8h高質(zhì)量私有語料進行預(yù)訓(xùn)練.但Tacotron 2合成高質(zhì)量語音通常要求較大的訓(xùn)練樣本量,因此需要一種減少訓(xùn)練樣本需求的方法.文獻[19]提出使用預(yù)訓(xùn)練的詞向量(英文)以減少Tacotron 2訓(xùn)練樣本,思路具有啟發(fā)性.考慮到漢字不表音,本文曾考慮使用預(yù)訓(xùn)練的拼音詞向量以增強信息,但拼音預(yù)訓(xùn)練詞向量非常罕見,資源難以獲得.實驗中發(fā)現(xiàn),通過對解碼器使用單獨的中文音頻進行預(yù)訓(xùn)練,也能獲得較好的初始化效果.特別地,在預(yù)訓(xùn)練凍結(jié)編碼器時,解碼器的輸入端應(yīng)給予輕微的擾動值,以減小預(yù)訓(xùn)練和微調(diào)不匹配時帶來的誤差.圖4分別給出了10萬步時使用解碼器預(yù)訓(xùn)練和沒有使用解碼器預(yù)訓(xùn)練獲得的梅爾頻譜.從圖4可以看到,相較前者,后者銳利而清晰.
3.5.2 多頭注意力機制
多頭注意力機制能夠?qū)μ囟ㄐ蛄型ㄟ^多個角度反復(fù)提取信息,并將各個子注意力模塊的輸出結(jié)果進行拼接,令生成語音時使用的信息更豐富,提升了合成語音音質(zhì).工程上可以使用梅爾倒譜距離(Mel Cepstral Distance,MCD)來評價音質(zhì),其值越小越好[20].表1給出了使用10 min左右(213句)驗證集在10萬步的模型上計算得到的MCD.本文還對比了不同頭數(shù)注意力機制對合成語音的影響,可以看到,頭數(shù)的增加可能提高生成語音的質(zhì)量.但同時也將使得訓(xùn)練速度變慢,內(nèi)存占用增大,收斂速度減緩,因此未來存在優(yōu)化的必要.
3.6 與其他語音合成系統(tǒng)的比較
如表2所示,經(jīng)15萬步、4頭注意力訓(xùn)練得到的中文tacotron2,其MCD的值為17.11,與文獻[19]給出的18.06具有可比性.
文獻[19]中英文Tacotron 2的評價印象分(Mean Opinion Score,MOS),即人類主觀評分為4.526±0.066,優(yōu)于文獻[2]中拼接式語音合成系統(tǒng)的4.166±0.091和文獻[3]中參數(shù)式語音合成系統(tǒng)的3.492±0.096.
需要說明的是,本文在實驗中合成相同的64句話,合成音頻時長為331.5 s,耗時366.11 s,暫時無法滿足實時要求.
4 總結(jié)
本文設(shè)計并通過實驗驗證了一個基于Tacotron 2的中文CNN語音合成方案,在語料有限的情況下,可以實現(xiàn)端到端的較高質(zhì)量中文語音合成.梅爾頻譜、梅爾倒譜距離等的實驗對比結(jié)果表明了其有效性,可較好地適應(yīng)中文語音合成的要求:就目前業(yè)內(nèi)一般僅能端到端語音合成英文的局面,是一個有益探索.
但本文方案目前尚存在一些問題,如:中文多音字辨識沒有得到徹底解決:合成語音中無法完全避免雜音,仍存在少量不合理停頓現(xiàn)象:對實時性的支持有待改善等.今后可持續(xù)進行優(yōu)化并開展較大規(guī)模人類主觀評測.
[參考文獻]
[1]MOHAMMADI s H,KAIN A.An overview of voice conversion systems[J]. Speech Communication, 2017,88:65-82.
[2]GONZALVO x,TAZARI s, CHAN c A,et al Recent advances in Google real-time HMM-driven unit selectionsynthesizer[C]//Interspeech 2016. 2016: 22382242.
[3]ZEN H,AGIOMYRGIANNAKIS Y,EGBERTS N,et al.Fast,compact,and high quality LSTM-RNN basedstatistical parametric speech synthesizers for mobile devices[C]//Interspeech 2016. 2016: 2273-2277.
[4]TAYLOR P.Text-to-Speech Synthesis[M]. Cambridge: Cambridge University Press, 2009.
[5]WANG Y,SKERRY-RYAN R J,STANTON D,et al Tacotron: Towards end-to-end speech synthesis[Jl. arXivpreprint arXiv:1703.10135, 2017.
[6] SHEN J,PANG R,WEISS R J,et al. Natural tts synthesis by conditioning wavenet on mel spectrogrampredictions[C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)IEEE, 2018: 4779-4783
[7] VAN DEN OORD A,DIELEMAN s,ZEN H,et al.WaveNet:A generative model for raw audio[Jl. arXiv preprint arXiv:1609.03499, 2016.
[8]OORD A,LI Y,BABUSCHKIN I, et al.Parallel WaveNet: Fast high-fidelity speech synthesis[J]. arXiv preprintarXiv:1711.10433, 2017.
[9]ARIK s o,Chrzanowski M,Coates A,et al.Deep voice: Real-time neural text-to-speech[J]. arXiv preprintarXiv:1702.07825, 2017.
[10]ARIK s, DIAMOS G,GIBIANSKY A,et al.Deep voice 2: Multi-speaker neural text-to-speech[J]. arXiv preprintarXiv:1705.08947, 2017.
[11] PING W, PENG K,CHEN J ClariNet: Parallel Wave Generation in End-to-End Text-to-Speech[J]. arXivpreprint arXiv:1807.07281, 2018.
[12] PRENGER R,VALLE R,CATANZARO B.WaveGlow:A Flow-based Generative Network for Speech Synthe-sis[J]. arXiv preprint arXiv:1811.00002, 2018.
[13] OORD A,KALCHBRENNER N,KAVUKCUOGLU K.Pixel recurrent neural networks[J]. arXiv preprintarXiv:1601.06759, 2016.
[14]VASWANI A,SHAZEER N,PARMAR N,et al.Attention is all you need[C]//3lst Annual Conference on NeuralInformation Processing Systems. NIPS. 2017: 5998-6008
[15] SUTSKEVER I, VINYALS o,Le Q V.Sequence to sequence learning with neural networks[C]//28th AnnualConference on Neural Information Processing Systems. NIPS. 2014: 3104-3112
[16] FREEMAN P,VILLEGAS E,KAMALU J Storytime-end to end neural networks for audiobooks[R/OL].[2018-08-28]. http://web.stanford.edu/class/cs224s/reports/Pierce_Freeman.pdf
[17] GRIFFIN D,LIM J Signal estiruation from modified short-time Fourier transform[J]. IEEE Transactions onAcoustics, Speech, and Signal Processing, 1984, 32(2): 236-243
[18]WANG D,ZHANG x W. Thchs-30:A free chinese speech corpus[J]. arXiv preprint arXiv:1512.01882, 2015.
[19]CHUNG Y A,WANG Y,HSU w N,et al Semi-supervised training for improving data efficiency in end-to-endspeech synthesis[J]. arXiv preprint arXiv:1808.10128, 2018.
[20] KUBICHEK R.Mel-cepstral distance measure for objective speech quality assessment[C]//Communications,Computers and Signal Processing, IEEE Pacific Rim Conference on. IEEE, 1993: 125-128.