【論文翻譯】通過梅爾頻譜預測來訓練WaveNet的自然語言合成

Google Brain團隊結合Tacotron和WaveNet等研究思路,增加了更多改進,最終實現了新的端到端語音合成系統Tacotron 2,達到了接近人聲的效果。

原論文鏈接: Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions

最近開始研究端到端語音合成。相關的論文原本準備自己翻譯,看到網上已經有翻譯的比較好的版本,
故轉載於此,僅作重新排版和細節修改。 翻譯原地址:https://my.oschina.net/stephenyng/blog/1620467

摘要

  這篇論文描述了Tacotron 2,一個直接從文本合成語音的神經網絡架構。系統由兩部分構成,一個循環seq2seq結構的特徵預測網絡,把字符向量映射到梅爾聲譜圖,後接一個WaveNet模型的修訂版作爲聲碼器,把梅爾聲譜圖合成爲時域波形。我們的模型得到了4.53的平均意見得分(MOS),而專業錄製語音的MOS得分是4.58。爲了驗證模型設計,我們對系統的關鍵組件作了剝離實驗研究,並且評估了使用梅爾頻譜替代語言學、音長和F0特徵作爲WaveNet輸入帶來的影響。我們進一步展示了使用這種緊湊的聲學中間表徵可以顯著地簡化WaveNet架構。

1. 介紹

  從文本生成自然語音(語音合成,TTS)研究了幾十年[1]仍然是一項有挑戰的任務。這一領域的主導技術隨着時代的發展不斷更迭。單元挑選和拼接式合成方法,是一項把預先錄製的語音波形的小片段縫合在一起的技術[2, 3],過去很多年中一直代表了最高水平。統計參數語音合成方法[4, 5, 6, 7],是直接生成語音特徵的平滑軌跡,然後交由聲碼器來合成語音,這種方法解決了帶邊界人工痕跡的拼接合成方法的很多問題。然而由這些方法構造的系統生成的語音與人類語音相比,經常模糊不清並且不自然。

  WaveNet [8]是時域波形的生成式模型,它生成的語音質量開始可以與真人語音媲美,該模型已經應用到一些完整的語音合成系統中 [9, 10, 11]。然而WaveNet的輸入數據(語言學特徵,預測的對數基頻(F0),以及音素時長)卻需要大量的領域專門知識才能生成,涉及複雜的文本分析系統,還要一個健壯的語音字典(發音指南)。

  Tacotron [12]是一個從字符序列生成幅度譜圖的seq2seq架構 [13],它僅用輸入數據訓練出一個單一的神經網絡,用於替換語言學和聲學特徵的生成模塊,從而簡化了傳統語音合成的流水線。爲了最終合成出幅度譜圖,Tacotron使用Griffin-Lim [14] 算法估計相位,然後施加一個短時傅里葉逆變換。作者們指出,相比WaveNet中使用的方法,Griffin-Lim算法會產生特有的人工痕跡並且合成的語音質量較低,所以這只是一個臨時方法,將來要替換成神經聲碼器。

  在這篇論文中,我們描繪一個統一的完整的神經網絡語音合成方法,它集前述兩種方法之長:一個seq2seq的Tacotron風格的模型 [12] 用來生成梅爾聲譜圖,後接一個WaveNet聲碼器 [10, 15] 的修訂版。模型直接使用歸一化的字符序列和語音波形數據進行端到端的訓練,學習合成的語音的自然度接近了真人語音。

  Deep Voice 3 [11]描述了一個類似的方法,然而,不同於我們的系統,它的語音自然度還不能與人類語音匹敵。Char2Wav [16]提出了另外一個類似的方法,也使用神經聲碼器進行端到端的TTS學習,但它使用與我們不同的中間特徵表達(傳統的聲碼器特徵),並且他們的模型架構與我們迥然不同。

2. 模型架構

  我們提出的系統由兩部分組成,如Fig.1所示:
(1)一個引入注意力機制(attention)的基於循環seq2seq的特徵預測網絡,用於從輸入的字符序列預測梅爾頻譜的幀序列;
(2)一個WaveNet網絡的修訂版,用於基於預測的梅爾頻譜幀序列來生成時域波形樣本。

這裏寫圖片描述

2.1 中間特徵表達

  在這項研究中,我們使用低層次的聲學表徵:梅爾頻率聲譜圖,來銜接系統的兩個部分。梅爾聲譜圖通過對時域波形進行計算很容易得到,使用這樣一個表徵,爲我們獨立訓練兩部分組件提供了可能。梅爾頻譜比波形樣本更平滑,並且由於其每一幀都是對相位不變的,所以更容易用平方誤差損失進行訓練。

  梅爾頻率聲譜圖與線性頻率聲譜圖,即短時傅里葉變換的振幅是相關的。從對人類聽覺系統的響應測試中得到啓發,梅爾頻譜是對短時傅里葉變換的頻率軸施加一個非線性變換,用較少的維度對頻率範圍進行壓縮變換得到的。這個與聽覺系統類似的頻率刻度方法,會強調語音的低頻細節,低頻細節對語音的可理解度非常關鍵,同時淡化高頻細節,而高頻部分通常被磨擦聲和其他爆裂噪聲所主導,因此基本上在高保真處理中不需要對高頻部分進行建模。正是由於具有這樣的屬性,基於梅爾刻度的特徵表達在過去幾十年一直廣泛應用於語音識別中。

  線性聲譜圖拋棄了相位信息(因此是有損的),而像Griffin-Lim [14] 這樣的算法可以對拋棄的相位信息進行估計,用一個短時傅里葉逆變換就可以把線性聲譜圖轉換成時域波形。梅爾聲譜圖拋棄的信息更多,因此對逆向波形合成任務提出了挑戰。但是,對比WaveNet中使用的語言學和聲學特徵,梅爾聲譜圖更簡單,是音頻信號的更低層次的聲學表徵,因此使用類似WaveNet的模型構造神經聲碼器時,在梅爾聲譜圖上訓練語音合成應該更直截了當。我們將會展示用WaveNet架構的修訂版從梅爾聲譜圖可以生成高質量的音頻。

2.2 聲譜圖預測網絡

  和Tactron中一樣,使用50毫秒幀長,12.5毫秒幀移,漢寧窗截取,通過計算短時傅里葉變換(STFT)得到梅爾頻譜。我們試驗了5毫秒的幀移來匹配原始WaveNet的輸入頻率,但是時間分辨率的相應增長導致了明顯更多的問題。
  
  我們使用頻率範圍在125赫茲到7.6K赫茲之間的80通道的梅爾濾波器組,後接對數動態範圍壓縮,從而把STFT幅度轉換到梅爾刻度上。在進行對數壓縮前,濾波器組的輸出振幅被裁剪到最小值0.01以便限制其在對數域中的動態取值範圍。

  聲譜圖預測網絡中,包含一個編碼器和一個引入注意力(attention)機制的解碼器。編碼器把字符序列轉換成一個隱層表徵,繼而解碼器接受這個隱層表徵用以預測聲譜圖。輸入字符被編碼成512維的字符向量,然後穿過一個3層卷積,每層卷積包含512個5x1的卷積核,即每個卷積核橫跨5個字符,後接批標準化(batch normalization)[18]和ReLU激活函數。像Tacotron中一樣,卷積層會對輸入字符序列的長時上下文(例如N-grams)進行建模。最後一個卷積層的輸出被傳遞給一個雙向[19] LSTM [20]層用以生成編碼特徵,這個LSTM包含512個單元(每個方向256個單元)。

  構建一個注意力網絡(attention network)用以消費編碼器的輸出結果,解碼器的每個輸出步,注意力網絡都將完整編碼序列歸納爲一個定長上下文向量。我們使用[21]中的位置敏感注意力機制,該機制對加法注意力機制[22]進行了擴展,使得可以使用之前解碼器時間步的累積注意力權重作爲追加特徵,因此使得模型在沿着輸入序列向前移動的時候保持前後一致,減少了子序列重複或者遺漏等解碼處理中潛在的失敗。位置特徵用32個長度爲31的1維卷積核卷積得出,然後把輸入序列和位置特徵投影到128維隱層表徵後,計算出注意力概率。

  解碼器是一個自迴歸的循環神經網絡,它從經過編碼的輸入序列預測輸梅爾聲譜圖,一次預測一幀。上一步預測出的頻譜幀首先被傳入一個每層由256個隱藏ReLU單元組成的雙層全連接的“pre-net”,我們發現作爲一個信息瓶頸層(bottleneck),pre-net對於學習注意力是必要的。pre-net的輸出和注意力上下文向量拼接在一起,傳給一個兩層堆疊的由1024個單元組成的單向LSTM。LSTM的輸出再次和注意力上下文向量拼接在一起,然後經過一個線性變換投影來預測目標頻譜幀。最後,預測的梅爾頻譜幀經過一個5層卷積的“post-net”來預測一個殘差疊加到卷積前的頻譜幀上,用以改善頻譜重構的整個過程。post-net的每層由512個5×1卷積核和一個批標準化處理組成,除了最後一層卷積,每層的批標準化處理都後接一個tanh激活函數。

  我們在post-net前後對均方誤差進行最小化以輔助收斂,我們還實驗了用混合密度網絡[23, 24]對輸出結果的分佈進行對數似然損失最小化,以避免假定輸出分佈隨時間是一個常數方差,但是結果發現這樣做使得訓練更困難,也沒能得到更好的合成樣本。

  並行於頻譜幀的預測,解碼器LSTM的輸出與注意力上下文向量拼接在一起,投影成一個標量後傳遞給sigmoid激活函數,來預測輸出序列是否已經完成的概率。預測了這一“停止標誌”,在推斷時允許模型動態的決策什麼時候結束頻譜生成,而不是在固定時長內一直生成。特別地,如果這一概率超過了閾值0.5,生成在第一幀就結束。

  網絡中的卷積層使用概率爲0.5的dropout [25]進行正則化處理,LSTM層使用概率爲0.1的zoneout [26]進行正則化處理。爲了在推斷時給輸出結果帶來些變化,概率爲0.5的dropout只施加在自迴歸解碼器的pre-net上。

  與Tacotron對比,我們的模型使用更簡潔的構造模塊,在編碼器和解碼器中不使用Tacotron中的“CBHG”堆疊結構和GRU循環層,轉而使用普通的LSTM和卷積層。我們沒有在解碼器的輸出中使用“縮小因子(reduction factor)”,即每個解碼步驟只關聯一個單獨的頻譜幀。

2.3 WaveNet 聲碼器

  我們使用[8]中WaveNet架構的一個修正版,把梅爾頻譜特徵表達逆變換爲時域波形樣本。和WaveNet的原架構中一樣,有30個擴大卷積層,分3個循環進行,也就是說第k(k = 0 … 29)層的擴張率等於2的p次方,p等於k (mod 10)。爲了使用頻譜幀的12.5毫米幀移,調節堆棧只是用了2個上採樣層而不是3個。

  然而沒有像WaveNet那樣使用softmax層預測離散片段,我們借鑑了PixelCNN++ [27]和Parallel WaveNet[28],使用10元混合邏輯分佈(10-component MoL)來生成頻率爲24k赫茲的16位深的語音樣本。爲了計算混合邏輯分佈,WaveNet的堆疊輸出傳給ReLU激活函數,再連接一個線性投影層來爲每一個混元預測參數(均值,對數刻度,混合權重)。損失函數使用標定真實數據的負對數似然函數計算而得。

3. 實驗 & 結果

3.1 構建訓練

  我們的訓練過程包括,首先單獨訓練特徵預測網絡,然後基於特徵預測網絡的輸出,來訓練修改版的WaveNet。

  我們在單個GPU上,使用標準的最大似然訓練程序來訓練特徵預測網絡(在解碼器端不是傳入預測結果而是傳入正確的結果,這種方法也被稱爲teacher-forcing),指定batch size爲64,使用Adam優化器並設定參數β1=0.9,β2=0.999,epsilon = 1e−6,學習率初始值1e-3並在50000次迭代後指數下降到1e-5,使用權重爲1e-6的L2正則化。

  然後把特徵預測網絡輸出的預測結果與標定數據對齊,我們使用經過對齊處理的預測結果,來訓練修改過的WaveNet。也就是說,預測網絡是在teacher-forcing模式下運行的,每個預測的幀數據依賴編碼的輸入序列和相應的標定數據聲譜圖中的前一幀來訓練。這確保了每一個預測的幀數據恰好與目標波形樣本對齊。

  訓練過程中,使用Adam優化器並指定參數β1=0.9,β2=0.999,epsilon=1e-8,學習率固定爲1e-4,把batch size爲128的批訓練分佈在32顆GPU上執行並同步更新,這有助於使用最近的更新來平衡整個模型的權重。所以我們在更新網絡參數時採用衰減率爲0.9999的指數加權平均 – 這個處理用在推斷中(請參照[29])。爲了加速收斂,我們用127.5的縮放因子來放大目標波形,這使得混合邏輯層的初始輸出更接近最終分佈。

  我們在內部美式英語數據集上訓練所有的模型,這個數據集包含24.6小時的一位專業女性播音員的語音數據。數據集中的所有文本都被拼寫出來了,比如”16”被寫成”sixteen”,即所有的模型都是在經過預標準化處理過的數據上訓練的。

3.2 評估

  在推斷階段生成語音的時候,是沒有標定數據的,所以與訓練階段的teacher-forcing做法不同,我們在解碼處理中直接傳入上一步的預測結果。

  我們從測試數據集中隨機選擇了100個固定樣例作爲評估數據集,用這個評估數據集生成的語音發送給類似Amazon Mechanical Turk這樣的打分服務團隊,進行主觀平均意見評分(MOS),每個評估數據至少有8個人打分,分值從1分到5分,打分間隔爲0.5。每個模型的評估都是相互獨立實施的,因此分配給評分人打分時,兩個不同模型的輸出結果不會被直接比較。

  注意雖然評估數據集中的評估樣本實例不包含在訓練數據集中,但是兩個數據集中仍然有一些重複的模式和相同的詞語,與用隨機詞語生成的評估數據集相比,這可能會導致得到一個較高的MOS得分。但是這樣做我們可以很容易與標定真實數據進行比較。因爲所有參與比較的系統都在同一數據集上進行訓練,所以互相比較仍然是有意義的。

這裏寫圖片描述

  表1展示了我們的方法和多個之前的系統的對比結果。爲了更好的隔離使用梅爾聲譜圖作爲特徵所帶來的影響,我們使用類似上文介紹的方法對WaveNet架構進行了修改,並用語言學特徵訓練WaveNet模型,並對其結果進行了比較。我們還比較了使用線性聲譜圖和Griffin-Lim合成語音的原始Tacotron模型,以及Google內部已經投入生產系統的拼接式[30]和參數式基線系統。我們發現,本次提出的系統顯著優於所有其他TTS系統,其結果可以與標定真實語音相媲美。
  

這裏寫圖片描述

  我們還對我們系統的合成結果和標定真實語音進行了細緻的對比評估,評分者被要求給出一個-3(合成結果比標定真實語音差很多)到3(合成結果比標定真實語音好很多)之間的分數。整體平均分−0.270±0.155說明評分者在很小的程度上更喜歡標定真實語音,但這個程度在統計學上是顯著的。細緻的剖析請參考圖2。評分者的點評表明偶爾的發音錯誤是更喜歡標定語音的主要原因。
  
  在[11]的附件E的100句測試集中,我們做了一個單獨的打分實驗,取得了4.354的MOS分數。在對系統的錯誤模式進行手工分析中,對各類錯誤獨立計數,其中沒有句子單詞重複,6句發音錯誤,1句跳詞,23句主觀認定韻律不自然,例如重音放在了錯誤的音節或者單詞上,或者不自然的音調。有1句末端預測失敗,該輸入句子包含最多的字母。這些結果表明,系統能夠可靠的關注到全體輸入,但在韻律建模上還有改善空間。

  最後,我們對使用37個新聞頭條合成的語音進行了評估,以測試系統在領域外數據上的泛化能力。在這個評估中,我們的模型得到了4.148±0.124的MOS分數,而使用語言學特徵訓練的WaveNet得到了4.137±0.128。對兩個系統生成的語音進行細緻的對比評估也表明二者不分伯仲,對我們系統的偏好在統計學上是非顯著的0.142±0.338。查驗評分者的點評也表明我們提出的神經系統模型生成的語音更自然,更接近人類,但有時會出現發音困難,比如,處理名字時。這個結果指出了端到端方法所面臨的一個挑戰:模型訓練需要在覆蓋目標領域的數據上進行。

3.3 剝離研究

3.3.1 預測特徵 vs 標定真實數據

  我們模型的兩部分組件是獨立訓練的,WaveNet組件要依賴於前一個組件的特徵預測結果才能進行訓練,一個可替代的方法是,使用從標定真實數據提取的梅爾聲譜圖來獨立訓練WaveNet。我們在表2展示了這種方法的可能性。

這裏寫圖片描述

  正如所料,當訓練和推斷使用的特徵一致時性能最好,然而當用標定數據的梅爾聲譜圖訓練而使用預測特徵進行推斷時,比兩者互換後的得分更糟糕。這是由於預測的聲譜圖過於平滑,比標定數據缺失細節,特徵預測網絡平方誤差損失優化的結果。當使用標定數據的聲譜圖訓練時,網絡沒有學習到從過於平滑的特徵生成高質量語音波形的方法。

3.3.2 線性聲譜圖

  爲了與梅爾聲譜圖的效果做對比,我們訓練特徵預測網絡使其預測線性頻率聲譜圖,這樣就可以用Griffin-Lim算法對聲譜圖進行逆變換。
  

這裏寫圖片描述

  正如[10]中指出的,WaveNet比Griffin-Lim算法生成的語音質量高很多。但是使用線性聲譜圖或者梅爾聲譜圖卻沒有太大區別。這樣一來,梅爾聲譜圖由於是一個更緊湊的表達所以使用它更好。在將來研究如何在梅爾頻率通道數和語音質量(MOS)之間取得妥協將是一件有意思的工作。

3.3.3 後處理網絡

  由於預測的未來幀在被解碼前不能被使用,我們在解碼後使用了一個卷積後處理網絡把過去幀和未來幀都包含進來以改善特徵預測。然而,因爲WaveNet已經包含了卷積層,可能會質疑使用WaveNet聲碼器的話,後處理網絡是否還有必要。爲了回答這個問題,我們比較了使用和不使用後處理網絡的結果,不使用後處理的MOS評分只得到了4.429±0.071,而使用後處理的MOS評分是4.526±0.066,所以從經驗上看後處理網絡仍然是網絡設計的一個重要組成部分。

3.3.4 簡化WaveNet

  WaveNet最典型的特徵是它使用了擴大卷積,感受野隨卷積的層數指數級增長。我們提出一個假說:由於相比語言學特徵,梅爾聲譜圖是波形的更接近的表達,並且已經在幀序列中獲取了長期依賴信息,更小感受野的更淺的網絡或許也可以圓滿的解決問題。我們使用不同的感受野大小和卷積層數來評估模型,以驗證我們提出的假說。

這裏寫圖片描述

  如表4所示,我們發現,與30層卷積,256毫秒感受野的基線模型相比,卷積層減少到12層,感受野10.5毫秒時,模型仍然能生成高質量語音。這個結果確認了[9]中的觀察:對於語音質量來說一個大的感受野並不是必須的。然而,我們推測正是因爲選擇了梅爾聲譜圖所以才允許了這個複雜度的降低。

  另一個角度看,如果我們去除所有的擴大卷積,感受野就會比基線模型小2個數量級,儘管堆棧還是同樣深,但語音質量會大幅度下降。這表明模型需要足夠的時間尺度波形樣本上下文才能生成高質量語音。

4. 結論

  這篇論文對Tacotron2進行了詳細描述,它是一個整合了兩個組件的完全神經語音合成系統,一個是用來預測梅爾聲譜圖的帶有注意力機制的seq2seq循環網絡,另一個是WaveNet聲碼器的修訂版本。該系統合成的語音在韻律上達到了Tacotron同等水平,同時語音質量達到了WaveNet水平。該系統可以通過數據直接訓練,不需要依賴複雜的特徵工程,達到了當前最佳語音質量,與人類語音的品質很接近。

5. 致謝

6. 引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章