丁云濤,才讓卓瑪,貢保加,才智杰
(1. 青海師范大學(xué)計(jì)算機(jī)學(xué)院,青海 西寧 810016;2. 西南民族大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,四川 成都 610041;3. 藏語智能信息處理及應(yīng)用國家重點(diǎn)實(shí)驗(yàn)室,青海 西寧 810008)
語音合成是智能人機(jī)語音交互的核心技術(shù),它的研究對智能機(jī)器人、人機(jī)語音通訊系統(tǒng)及自動控制等的研制具有重要的理論意義和實(shí)用價值。國內(nèi)外對語音合成的研究可追溯到18世紀(jì),其發(fā)展歷程主要經(jīng)過機(jī)械裝置語音合成、電子器件語音合成、基于計(jì)算機(jī)技術(shù)的語音合成等三個階段[1]。隨著計(jì)算機(jī)硬件和技術(shù)的發(fā)展,基于計(jì)算機(jī)技術(shù)的語音合成從合成技術(shù)角度通常將語音合成分為波形合成法[2]、參數(shù)合成法[3]、規(guī)則合成法[4]和基于神經(jīng)網(wǎng)絡(luò)的語音合成法[5]。其中,基于神經(jīng)網(wǎng)絡(luò)的語音合成方法由于自主學(xué)習(xí)和反向傳播的能力[6],大大減少了語音合成的錯誤率,更貼近于人聲。因此,基于神經(jīng)網(wǎng)絡(luò)的語音合成方法已經(jīng)成為當(dāng)前語音合成的主流方法[7-10]。
藏語語音合成作為中文信息處理的重要組成部分,同時也是藏語智能人機(jī)語音交互的重點(diǎn)和難點(diǎn)?,F(xiàn)如今,神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展不僅降低了藏語語音合成的門檻,同時提高了語音合成的質(zhì)量。2019年文獻(xiàn)[11]融合seq2seq模型和注意力機(jī)制,提出了基于griffin-lim[12]聲碼器藏語語音合成方法,使得藏語語音合成進(jìn)入了新時代。
griffin-lim聲碼器高效、算法簡單,但卻存在語音保真度低、人工合成痕跡明顯的問題。2017年DeepMind提出的WaveNet[13]能夠通過直接學(xué)習(xí)到采樣值序列的映射,合成接近原始音頻效果的語音。鑒于此,該文提出了基于WaveNet的藏語語音合成方法。
藏語語音合成技術(shù)作為中文信息處理的重要分支,盡管起步較晚,但也逐步從基于波形拼接的藏語語音合成[2]和基于統(tǒng)計(jì)參數(shù)的藏語語音合成[14]進(jìn)入到基于神經(jīng)網(wǎng)絡(luò)的藏語語音合成[11,15]時代。
目前,基于神經(jīng)網(wǎng)絡(luò)的藏語語音合成主要采用griffin-lim聲碼器[16,17],通過注意力機(jī)制使用編碼器-解碼器結(jié)構(gòu)提取藏文文本特征來預(yù)測mel頻譜,最后使用griffin-lim聲碼器實(shí)現(xiàn)藏語語音的合成。
圖1 基于WaveNet的藏語語音合成模型
griffin-lim聲碼器是一種已知幅度譜,通過迭代生成相位譜,并用已知的幅度譜和計(jì)算得出的相位譜,重建語音波形的方法。這種聲碼器不需要訓(xùn)練,不需要預(yù)知相位譜,而是通過幀與幀之間的關(guān)系估計(jì)相位信息。
WaveNet作為一種可訓(xùn)練的基于深度神經(jīng)網(wǎng)絡(luò)的聲碼器,可以用于語音生成建模,它是一個完全的概率自回歸模型,即可基于之前已經(jīng)生成的所有樣本,預(yù)測當(dāng)前音頻樣本的概率分布。在語音合成的聲學(xué)模型建模中,WaveNet利用因果卷積、帶洞因果卷積與相應(yīng)激活函數(shù)的結(jié)合,可以更好的學(xué)習(xí)語音中的相位、振幅等特征信息,具有很好的合成效果。從語音合成質(zhì)量來說,WaveNet聲碼器的自回歸特性及其在時域上更強(qiáng)的感知能力和感知范圍[18,19],使得合成出的語音更能貼近人聲,彌補(bǔ)了griffin-lim保真度較低且有著較為明顯的人工合成痕跡問題[18]。
藏語作為我國廣大藏區(qū)藏族使用的語言,其語音不僅具有鮮明的地域性,而且語法豐富多樣。例如,分布在中國西藏自治區(qū)和青海、四川、甘肅等地的藏族使用著不同的方言(衛(wèi)藏方言或康巴方言或安多方言),且有些方言同漢語普通話一樣有聲調(diào),但有些藏語方言沒有聲調(diào)。藏文字以字根(或稱基字)為中心由輔音字母和4個元音組成,呈二維結(jié)構(gòu),其既不同于漢字或拼音,也不同于一維結(jié)構(gòu)的英文。因而合成藏語語音,需要更多地考慮藏語言文字本身的聲韻特征信息。鑒于此,該文用帶有注意力機(jī)制(attention mechanic)[20]的特征提取結(jié)構(gòu)來提取藏文特征和頻譜特征,根據(jù)頻譜特征使用WaveNet聲碼器合成藏語語音波形。實(shí)驗(yàn)數(shù)據(jù)證明,在相同語料下該文方法能獲得更好的合成語音。
文本特征在語音合成過程中不可或缺,因此該文首先對文本進(jìn)行預(yù)處理后,之后使用卷積運(yùn)算提取文本特征,并通過注意力機(jī)制給文本特征賦予相應(yīng)權(quán)重完成文本特征提取,具體過程簡述如下:
首先,將文本數(shù)據(jù)經(jīng)字符編碼轉(zhuǎn)換為相應(yīng)的詞向量,以此作為后續(xù)的輸入。
表1 one-hot編碼
表2 線性變換
其次,利用三個1維卷積層對詞向量提取文本特征。具體參數(shù)設(shè)置如圖2所示。
考慮到一維濾波器可以更好的檢測文本特征相關(guān)度的高低,因而在每一層卷積層中使用了512個一維濾波器提取文本特征(512與之前的詞向量特征深度對應(yīng)),每一層卷積層都通過relu激活函數(shù)來實(shí)現(xiàn)非線性激活。
圖2 卷積層
最后,使用注意力機(jī)制給文本特征賦予相應(yīng)的權(quán)重,使得文本特征經(jīng)訓(xùn)練后更符合人耳特性,其原理如圖3所示。
圖3中h1,h2,…,ht為文本特征向量(即經(jīng)過BiLSTM編碼之后的輸入),a1,a2,…,at為權(quán)重向量(即注意力權(quán)重)。該過程是將句子中每一個文本特征向量的序列與權(quán)重向量進(jìn)行乘積,得到文本特征權(quán)重向量ct,進(jìn)而將ct合并為一個c矩陣作為LSTM(decoder)的輸入。訓(xùn)練時BiLSTM將文本特征序列編碼為隱藏的特征,LSTM將賦予注意力權(quán)重的文本特征序列解碼為相應(yīng)頻譜特征,權(quán)重向量大小隨著BiLSTM和LSTM的訓(xùn)練得到更新。
圖3 注意力權(quán)重賦值
考慮到mel頻譜更符合人類的聽覺系統(tǒng)[18],該文選擇mel頻譜作為頻譜特征進(jìn)行頻譜預(yù)測。通過建立一個自回歸的神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)頻譜的多幀預(yù)測,其主要步驟如下:
1)將解碼后的頻譜特征矩陣通過線性投影的方式預(yù)測一幀mel頻譜向量。該過程中,線性投影的內(nèi)部結(jié)構(gòu)是一個帶有1024個隱藏單元的隱藏層,考慮到全連接可以減少特征位置帶來的影響,使得預(yù)測的mel頻譜更貼近實(shí)際的mel頻譜,從而在發(fā)音上更接近原始音頻。因此,該文用全連接映射實(shí)現(xiàn)線性投影預(yù)測得到一幀mel頻譜。
2)將獲得的該幀mel頻譜向量通過后處理層(post-net)的殘差卷積運(yùn)算使該幀mel頻譜向量更加精確。其中,post-net的內(nèi)部結(jié)構(gòu)由5個1維卷積層組成,為了避免由于卷積層數(shù)過深導(dǎo)致神經(jīng)網(wǎng)絡(luò)的梯度傳播會出現(xiàn)梯度爆炸等問題,該文利用殘差網(wǎng)絡(luò)(residual network)[21],通過跳層連接形式,使得深層網(wǎng)絡(luò)卷積的訓(xùn)練效果更好[22]。
3)預(yù)處理層(pre-net)將該幀的mel頻譜實(shí)現(xiàn)非線性變換轉(zhuǎn)換頻譜矩陣維度。該過程中,pre-net內(nèi)部結(jié)構(gòu)由2層帶有256個隱藏單元的relu全連接層組成,第一層與第二層之間使用0.5的衰減率(即第一層與第二層之間的連接個數(shù)隨機(jī)減半)來減少過擬合,提高泛化能力,從而實(shí)現(xiàn)非線性變換。
4)將頻譜矩陣與新解碼的頻譜特征矩陣進(jìn)行拼接,獲得下一幀的頻譜特征矩陣。例如新解碼的頻譜矩陣其維度為1024*1,原頻譜矩陣的維度為512*1,通過拼接作為下一幀的頻譜矩陣,其維度為1536*1的矩陣。
完成步驟4)后返回步驟1),重復(fù)此步驟,直到mel頻譜預(yù)測完全。
圖4 原聲
圖5 帶post-net
圖6 不帶post-net
WaveNet作為神經(jīng)網(wǎng)絡(luò)聲碼器,其內(nèi)部結(jié)構(gòu)由因果卷積、帶洞因果卷積層的一維卷積層以及門控激活函數(shù)(tanh,sigmoid)構(gòu)成。其中,因果卷積保證了頻譜信息的時序性,帶洞因果卷積擴(kuò)大了頻譜卷積的感受野,而門控激活函數(shù)tanh和sigmoid分別學(xué)習(xí)音頻特征中的相位、頻率信息和振幅信息。
在藏語語音波形合成中,WaveNet將預(yù)測的Mel頻譜矩陣通過因果卷積生成新的頻譜矩陣,對頻譜矩陣通過帶洞因果卷積和一系列的門控激活函數(shù)進(jìn)行粗粒度卷積。通過自回歸特性恢復(fù)丟失相位信息后用softmax函數(shù)輸出采樣點(diǎn)的后驗(yàn)概率[23]。其中,自回歸特性是通過前t-1個波形采樣點(diǎn)來預(yù)測第t個采樣點(diǎn),其概率式(1)如下所示:
(1)
該文實(shí)驗(yàn)結(jié)果采用了客觀分析和主觀評價兩種方式,其中客觀分析首先分析了訓(xùn)練步數(shù)/百分比損失圖得出該模型訓(xùn)練的有效性,接著對比分析頻譜圖的共振峰清晰度與幅度進(jìn)而得出客觀結(jié)果,主觀分析通過MOS(Mean Opinion Score)值分析對比語音的自然度、清晰度。
實(shí)驗(yàn)語料采用青海師范大學(xué)藏文信息處理重點(diǎn)實(shí)驗(yàn)室的語料,包含2400句專業(yè)藏族播音女聲,采樣率為16000Hz,采樣精度為16bits??紤]到語音信號的非平穩(wěn)特性,在預(yù)處理中使用漢明窗,幀長50ms,幀移12.5ms。訓(xùn)練步數(shù)設(shè)置為100000步。
訓(xùn)練步數(shù)/百分比損失圖可以清晰地看出模型的擬合程度,如圖7(訓(xùn)練步數(shù)為100000步)所示:隨著訓(xùn)練步數(shù)的增加,百分比誤差也不斷地降低,在60000步后趨于平緩,達(dá)到0.7%的損失,得到了較好的訓(xùn)練效果。
圖7 訓(xùn)練步數(shù)/百分比損失圖
圖8 基線模型
圖9 該文模型
清楚的看出該文模型在共振峰的清晰度上相比較基線模型更加清晰,在高頻區(qū)有更多的細(xì)節(jié)描繪,更加貼近原聲。反觀基線模型,可以看出在一些共振峰上相比較原聲模型并不連續(xù),且在高頻區(qū)缺乏細(xì)節(jié)描繪。因而該文的模型相較于基線模型的藏語語音合成有著更好的表現(xiàn)。
圖10 原聲
從語料庫隨機(jī)抽取出5句安多藏語作為測試數(shù)據(jù),并將文獻(xiàn)[11]作為該文基線模型與該文模型進(jìn)行了對比分析。對比依據(jù)來自10位不同的專業(yè)、不同層次懂藏語的測試員對測試數(shù)據(jù)從自然度、清晰度進(jìn)行MOS打分,具體結(jié)果如表3和圖4所示。
表3 MOS值
由上表3可見,測試員普遍認(rèn)為該文模型相較于基線模型在自然度與清晰度上有著更好的MOS值。
該文在文獻(xiàn)[11]的基礎(chǔ)上,使用一維卷積層提取文本特征,添加了post-net對mel頻譜進(jìn)行進(jìn)一步處理使其預(yù)測結(jié)果更貼切實(shí)際,最后使用WaveNet代替了griffin-lim算法合成藏語語音。從主觀、客觀實(shí)驗(yàn)證明,該文的模型效果更佳,合成的語音效果在自然度、清晰度上更佳貼近原聲。
相較于漢語、英語的語料,藏語的語料非常的稀缺和現(xiàn)有聲碼器存在的問題,后續(xù)研究中還需地不斷地?cái)U(kuò)大藏語語料庫規(guī)模和改進(jìn)WaveNet聲碼器的合成速率。