陳小東 宋文愛 劉曉峰
(中北大學軟件學院 太原 030051)
語音合成(Speech Synthesis)泛指將輸入文本或音素序列映射輸出為音頻信號的技術。傳統的語音合成方法,如參數式語音合成[1],使用參數模型對文本進行建模并從中生成語音,通常由文本分析前端、聲學模型、持續時間模型和用于波形重建的聲碼器組成,需要廣泛的領域專業知識來進行研究;拼接式語音合成[2],從語音庫中挑選適當的語音單元,然后拼接以形成輸出,但其需要的音庫一般較大,靈活性有限。
近年來隨著深度學習的不斷發展和應用,基于Seq2Seq結構的模型被多個語音合成模型證明優于傳統結構。Wang[3]等最早使用帶有注意力機制的Seq2Seq方法嘗試語音合成系統,但是需要一個預訓練的HMM模型用于對齊;百度DeepVoice[4]的做法是仿照傳統參數合成的各個步驟,將每一階段分別用一個神經網絡模型來代替;Char2Wav[5]可以直接輸入英文字符進行合成,但仍是預測出聲學參數,需要使用聲碼器進行合成語音;邱澤宇[6]等利用Seq2Seq架構,實現了中文的語音合成。Taco?tron 2[7]可以直接從圖形或音素生成語音,該模型首先由一個循環Seq2Seq的網絡預測梅爾聲譜圖,然后由一個改進的WaveNet[8]來合成這些聲譜圖的時域波形。WaveNet是一種基于神經網絡的自回歸方法,使用一種新的擴展因果卷積結構捕獲語音信號中的長期時間依賴關系。WaveNet作為一個語音合成后端的模塊,將前端字符映射為音素等一些人工的語言學特征轉化為語音波形輸出,它比傳統WORLD[9]聲碼器更好地重構了原始語音中的相位信息,可以實現高質量的合成語音。但是這種自回歸模型合成速度緩慢、復雜的網絡結構,并且需要較大的模型尺寸。
本文針對Seq2Seq語音合成模型中WaveNet合成語音緩慢、網絡結構復雜等問題,提出一種基于LPCNet[10]模型的語音合成方法,LPCNet模型基于WaveRNN[11]改進,它將神經網絡合成與線性預測相結合,使用神經網絡預測聲源信號,然后應用LPC濾波器對其進行濾波,確保合成高質量語音的同時提高語音合成效率。
本文提出的模型主要由兩部分組成,一個引入注意力機制的Encoder-Decoder(編碼器-解碼器)框架聲學模型,用于從輸入的字符序列預測梅爾聲譜的幀序列;一個LPCNet模型作為聲碼器,基于預測的梅爾聲譜幀序列生成語音波形。
本文采用梅爾聲譜圖作為聲學特征。以中文帶調拼音序列作為輸入,通過編碼器首先將其轉換為嵌入語言特征的隱層表征,然后在每一個解碼步驟中通過注意力機制將其傳輸到解碼器,解碼器的遞歸網絡接受隱層表征用以預測梅爾聲譜圖。最后,預測的梅爾聲譜圖通過LPCNet模型合成目標語音。圖1顯示了模型的總體架構。
注意力機制近年變得非常流行,并且在機器翻譯[12]任務上表現得非常好。在語音合成中注意力機制有助于聯合學習輸出聲音特征和輸入序列映射的對齊。Tacotron2中,采用的是位置敏感注意力機制[13]。本文建議用Transformer模型[14]中更簡單的Query-Key self attention來代替這種注意力機制。因為Query-Key self attention不僅能在訓練過程中快速的學到對齊,而且比位置敏感注意力機制需要更少的參數。
在聲學模型中,編碼器中的元素序列由一系列的

圖1 模型架構
給定 Q(Query)、K(Key)、V(Value),每個解碼步驟的注意力概率通過點積計算。在使用點積運算進行相似度計算的基礎上,縮小了d倍(d為輸入字符的維度),其目的在于調節作用,使得內積不易過大。

其中T表示編碼器中元素序列的長度。
聲學模型采用基于Seq2Seq的梅爾聲譜圖預測網絡,主要由圖1中的編碼器和引入注意力機制的解碼器兩個神經網絡組成,將輸入序列轉換為對應的梅爾聲譜圖。編解碼器組合作為一個整體的網絡,與傳統的聲學參數統計模型相比,能更準確的生成聲學特征。
設y=[y1,y2,...,yt]表示網絡輸出的梅爾頻譜序列。特征預測網絡使用每個輸出幀yt的條件分布來建模輸入和輸出特征序列之間的映射關系為

給定之前的輸出幀y 編碼器首先將輸入拼音序列轉換為512維的字符向量,然后通過三個卷積層對輸入字符序列的上下文進行建模,每層卷積包含512個5×1的卷積核,后接批標準化(batch normalization)[15]和 ReLU激活函數,最終卷積層的輸出被輸入到雙向LSTM層以生成編碼特征。編碼器將輸入的字符序列x=[x1,...,xTx] 轉 換 為 隱 藏 特 征 表 示 序 列h=[h1,...,hTh],如下所示: 具有注意力機制的解碼器利用h,在輸出幀上產生概率分布為 構建一個注意力機制接受編碼器的輸出,編碼器的每次輸出,注意力機制都將編碼的序列概括為一個上下文向量c。在每個解碼器步驟上使用注意力概率計算上下文向量c 解碼器根據上下文向量c來預測輸出梅爾聲譜圖的幀序列。首先將上一步預測出的聲譜幀輸入到雙層全連接的“Pre-net”,每層有256個隱藏Relu單元以學習注意力,并在卷積層后應用概率為0.5 的 Dropout[16]進行正則化處理。然后,將上下文向量c和Pre-net的輸出通過兩個具有1024個單元的單向LSTM層,其中LSTM層之后是兩個預測“完成概率”和目標頻譜幀的投影層,用于預測完成概率表示生成后的序列是否到達最后一幀。在訓練過程中,如果該概率超過0.5,就會自動停止生成聲譜幀。 最后,為了提高生成精度,引入了5個卷積層的“Post-net”作為后處理網絡,每層由512個5×1卷積核和一個批標準化處理組成。Post-net利用雙向上下文信息對解碼器預測的梅爾聲譜圖進行了細化,最后一層的輸出疊加到卷積前的頻譜幀上產生最終的結果。設 z=[z1,...,zTz]表示Post-net輸出序列,這是模型的最終預測。在給定編解碼器網絡y輸出的情況下,特征序列z的分布被建模為 其中Wp表示Post-net的參數。 聲碼器作用于從聲學特征重構語音波形,是語音合成模型至關重要的一部分。傳統基于數字信號處理的聲碼器速度很快,但是合成的語音質量較差,而基于神經網絡的聲碼器語音質量更高,但在許多神經語音合成方法中,神經網絡必須對整個語音生成過程建模,通常復雜度太高,無法實時。其中WaveNet利用自回歸方法對一個數據流X的聯合概率分布建立模型,對數據流X中的每一個元素x的條件概率求乘積。該模型使用過去的樣本預測序列的當前值,對于一段未處理音頻xt,構建的聯合概率函數為 其中N為語音樣本數量,h為影響分布的輔助特征,由于生成模型的自回歸特點,WaveNet的生成速度非常緩慢。 根據Source-Filter(源-濾波器)的語音產生機理,語音產生過程主要分為激勵源、聲道響應兩個獨立的模塊。在神經語音合成方法中,大多數由神經網絡整體模擬激勵源、聲道響應,但實際上在建模時,用一個簡單的全極點線性濾波器[17]就可以很好地表示聲道響應,而使用神經網絡實現卻非常復雜。因此LPCNet模型以WaveRNN為基礎加入LPC濾波器模塊降低神經網絡的復雜度,將對整個語音采樣值建模的過程分解成線性和非線性兩部分,線性部分通過基于數字信號處理的線性預測給出,神經網絡僅需建模較小的非線性部分,這樣就可以簡化神經網絡聲碼器。 語音相鄰樣本點具有很強的相關性,通常假設語音采樣值是一個自回歸過程,即當前時刻樣本值可以近似由相鄰歷史時刻的樣本值線性表示,設St為時間t時的信號,其基于之前樣本的線性預測為 其中,ak是當前幀的線性預測系數,通過將梅爾頻譜轉換為線性頻率功率譜密度,利用一個逆快速傅里葉變換將線性頻率功率譜密度轉換得到一個自相關函數,最后通過Levinson-Durbin算法計算得到。 把殘差信號當作激勵源,使用神經網絡可以直接預測殘差,通過由線性預測系數構成的全極點濾波器便可以恢復原始語音。為了和聲學模型的輸出保持數據一致性,將梅爾聲譜圖作為LPCNet的聲學特征輸入。LPCNet將數字信號處理和神經網絡結合應用于語音合成中的聲碼器,可以在普通的CPU上快速的合成高質量語音,訓練過程也會變得更加高效,有很好的研究意義。 實驗操作系統為Ubuntu 14.04.1,顯卡使用NVIDIA GeForce GTX 1080Ti,處 理 器 為 Intel i7-5200U,內存為8G,主頻為3.2Hz,程序運行框架為Tensorflow 1.3.0平臺。 實驗使用了一個由一位專業女性演講者錄制的語音和韻律都很豐富的普通話語音數據庫。數據庫由5000個話語以及相對應的文本拼音標注組成(約6小時,分為訓練、驗證和測試三個子集,分別為4000,700和300個話語),數據采樣率16kHz,位數16bit。 實驗采用80維梅爾聲譜圖作為聲學特征。為了計算梅爾聲譜圖,首先使用50毫秒幀大小,10毫秒幀移和漢明窗口函數對音頻執行短時傅里葉變換。然后,使用范圍從125 Hz~7.6 kHz的80個梅爾濾波器將STFT幅度譜轉換為梅爾刻度,最后通過對數函數進行動態范圍壓縮。Ad?am優化器指定參數β1=0.9,β2=0.999,學習率初始設置0.001。批次規模(batch size)為32,使用預測和目標譜圖之間的L2距離作為損失函數來訓練整個網絡。 為了減少誤差,在訓練過程中,通過教師強迫(Teacher force)[18]的方式訓練模型,在解碼步驟提供真實的梅爾聲譜圖,而不是模型預測的梅爾聲譜圖。為了保證該模型能夠長期對序列進行學習,將教師強迫比從1.0(完全教師強迫)退火到0.2(20%教師強迫)。 實驗分別使用客觀和主觀兩種測試方式來評估合成語音的質量。首先,采用MOS評分法[18~19]對模型進行主觀評估,MOS指標用來衡量聲音接近人聲的自然度和音質。將語音合成模型生成的樣本提供給評估人員,并按1(差)到5(優)打分,分值間隔0.5,然后計算分數的算術平均值即為最終的MOS分數。 表1 不同模型的MOS評分對比 本文對參數式模型和拼接模型,以及Tacotron2模型做了對比,使用這些模型分別合成一組20個句子,并通過MOS測試將它們的得分與原始錄音進行比較。每個句子由30名不同的測評者進行評估,表1顯示了測試的結果。 由表1可知,基于LPCNet的語音合成模型和Tacotron2模型所生成的語音質量明顯高于傳統的參數式和拼接式合成模型,原因在于這兩個模型的聲學模型部分都是基于Seq2Seq的特征預測網絡,它能更好地學習到聲學特征。另外,它們的MOS得分幾乎相等,并且接近于真實錄音的分值,說明它們在合成語音的質量上都很優異,但是LPCNet模型的復雜度比Tacotron2的模型要低得多,所以基于LPCNet的語音合成模型比Tacotron2更高效。 對于客觀評估方式,本文使用MCD(Mel Ceps?tral Distance)梅爾倒頻率失真度[20],它通過測量預測梅爾倒譜與真實梅爾倒譜之間的距離來評估合成語音與真實語音的質量差距,距離越小越好。測試使用包含大約20min(300個句子)的驗證集。 表2 不同模型的MCD值對比 從表2中可以看出,LPCNet模型的MCD值略小于Tacotron2模型,相比參數式模型和拼接式模型,表現則更為優異,可以得出基于LPCNet的語音合成模型合成的語音質量更接近于真實語音,相比其他三種模型合成的語音更自然。 為了確定不同聲碼器之間的性能差異,本文對聲碼器部分做了一個對比研究,同時采用前文介紹的聲學模型,分別對參數化WORLD聲碼器和常規WaveNet聲碼器合成的語音樣本進行了評估,其中WORLD聲碼器的中間聲學參數包括基頻、頻譜包絡和非周期性參數。 圖2 各類聲碼器MOS評分 從圖2可以得出,LPCNet與WORLD相比,在語音質量上有著巨大的差異,相比WaveNet還略有欠缺。然而,因為特殊的卷積框架和自回歸采樣方式,WaveNet具有緩慢的合成速度。而LPCNet結構更簡單,合成速度更快,同樣可以生成高質量的語音,所以LPCNet模型作為聲碼器合成語音的效率更高。 另一方面,測試合成驗證集話語時,基于LPC?Net模型的方法平均生成3000個樣本/s,相比之下,自回歸采樣的WaveNet方法平均產生257個樣本/秒。本文所提出的方法合成語音的速度顯著提高,它通過數字信號處理技術和神經網絡的結合,使得合成語音速度比WaveNet更快,所以該方法有效解決了WaveNet神經聲碼器合成語音緩慢的問題。 本文提出一種基于LPCNet模型的語音合成方法,將梅爾聲譜圖作為聲學特征,首先利用Que?ry-Key self attention注意力機制的Seq2Seq網絡將輸入字符轉換為梅爾聲譜圖,然后將所生成的梅爾聲譜圖通過LPCNet模型進行語音波形的重構,生成了高質量的語音。經過研究得出以下結論: 1)本文基于LPCNet模型的語音合成方法,降低了基于Seq2Seq結構語音合成的模型復雜度。 2)通過將數字信號處理技術和神經網絡相結合,合成語音的速度大大加快,實現了高效的語音合成。 3)將LPCNet模型作為聲碼器,合成的語音質量接近于WaveNet,并顯著高于WORLD聲碼器。 4)與傳統的參數式和拼接式語音合成模型相比,本文提出方法的合成語音主觀評測MOS分數更高和客觀評測MCD值更低。



2.3 聲碼器


3 實驗與分析
3.1 基本設置
3.2 實驗評估


3.3 對比研究

4 結語