Tacotron2論文翻譯
論文下載:https://arxiv.org/pdf/1712.05884.pdf
ABSTRACT

這篇論文描述了 Tacotron 2, 一個(gè)直接從文本合成語(yǔ)音的神經(jīng)網(wǎng)絡(luò)架構(gòu)。系統(tǒng)由兩部分構(gòu)成,一個(gè)循環(huán) seq2seq 結(jié)構(gòu)的特征預(yù)測(cè)網(wǎng)絡(luò),把字符向量映射為梅爾聲譜圖,后面再接一個(gè) WaveNet 模型的修訂版,把梅爾聲譜圖合成為時(shí)域波形。我們的模型得到了 4.53 的平均意見(jiàn)得分(MOS),專業(yè)錄制語(yǔ)音的 MOS 得分是 4.58。為了驗(yàn)證模型設(shè)計(jì),我們對(duì)系統(tǒng)的關(guān)鍵組件作了剝離實(shí)驗(yàn)研究,并且評(píng)估了使用梅爾頻譜替代語(yǔ)言學(xué)、音長(zhǎng)和 F0 特征作為 WaveNet 輸入帶來(lái)的不同影響。我們進(jìn)一步展示了使用緊湊的聲學(xué)中間表征可以顯著地簡(jiǎn)化 WaveNet 架構(gòu)。
1 INTRODUCTION

從文本生成自然語(yǔ)音(語(yǔ)音合成,TTS)仍然是一項(xiàng)有挑戰(zhàn)的任務(wù)。這一領(lǐng)域的主導(dǎo)技術(shù)隨著時(shí)代的發(fā)展不斷更迭。單元選擇和拼接式合成方法,是一項(xiàng)把預(yù)先錄制的語(yǔ)音波形的小片段縫合在一起的技術(shù),過(guò)去很多年一直代表著最高水平。統(tǒng)計(jì)參數(shù)語(yǔ)音合成方法,是直接生成語(yǔ)音特征的平滑軌跡,然后由聲碼器來(lái)合成語(yǔ)音,這種方法解決了拼接合成方法中出現(xiàn)的邊界人工痕跡的很多問(wèn)題。然而由這些方法生成的語(yǔ)音與人類語(yǔ)音相比,經(jīng)常模糊不清且不自然。WaveNet 是時(shí)域波形的生成式模型,它生成的語(yǔ)音有機(jī)會(huì)與真人語(yǔ)音媲美,該模型已經(jīng)應(yīng)用到一些完整的語(yǔ)音合成系統(tǒng)中。然而 WaveNet 的輸入數(shù)據(jù)(語(yǔ)言學(xué)特征,預(yù)測(cè)的對(duì)數(shù)基頻(F0),以及音素時(shí)長(zhǎng))卻需要大量領(lǐng)域內(nèi)的知識(shí)才能生成,包括一個(gè)詳盡的文本分析系統(tǒng),還要一個(gè)健壯的語(yǔ)音字典(發(fā)音指南)。Tacotron 是一個(gè)從字符序列生成幅度譜圖的 seq2seq 架構(gòu),它僅用輸入數(shù)據(jù)訓(xùn)練一個(gè)單一的神經(jīng)網(wǎng)絡(luò),Tacotron 用于替換語(yǔ)言學(xué)和聲學(xué)特征的生成模塊,從而簡(jiǎn)化了傳統(tǒng)語(yǔ)音合成的流水線。為了最終合成出幅度譜圖,Tacotron 使用 Griffin-Lim 算法估計(jì)相位,然后施加一個(gè)短時(shí)傅里葉逆變換。作者們指出,相比 WaveNet 中使用的方法,Griffin-Lim 算法會(huì)產(chǎn)生特有的人工痕跡并且合成的語(yǔ)音保真度較低,所以這只是一個(gè)臨時(shí)方法,將來(lái)要替換成神經(jīng)聲碼器。在這篇論文中,我們描繪一個(gè)統(tǒng)一的完整的神經(jīng)網(wǎng)絡(luò)語(yǔ)音合成方法,它集上述兩種方法之長(zhǎng):一個(gè) seq2seq 的 Tacotron 風(fēng)格的模型用來(lái)生成梅爾聲譜圖,后接一個(gè) WaveNet 聲碼器的修訂版。該系統(tǒng)允許直接使用字符序列和語(yǔ)音波形數(shù)據(jù)進(jìn)行端到端的訓(xùn)練學(xué)習(xí)語(yǔ)音合成,它合成語(yǔ)音的自然度更接近真人語(yǔ)音。Deep Voice 3 描述了一個(gè)類似的方法,然而,不同于我們的系統(tǒng),它的語(yǔ)音保真度還不能與人類語(yǔ)音匹敵。Char2Wav 也提出了另外一個(gè)類似的方法,也使用神經(jīng)聲碼器進(jìn)行端到端的 TTS 學(xué)習(xí),但它使用與我們不同的中間特征表達(dá)(傳統(tǒng)的聲碼器特征),并且他們的模型架構(gòu)與我們迥然不同。
2 MODEL ARCHITECTURE

我們提出的系統(tǒng)由兩部分組成,如 Fig.1 所示:
一個(gè)引入注意力機(jī)制(attention)的基于循環(huán) seq2seq 的特征預(yù)測(cè)網(wǎng)絡(luò),用于從輸入的字符序列預(yù)測(cè)梅爾頻譜的幀序列。
一個(gè) WaveNet 網(wǎng)絡(luò)的修訂版,用于基于預(yù)測(cè)的梅爾頻譜幀序列來(lái)學(xué)習(xí)產(chǎn)生時(shí)域波形樣本。
2.1 Intermediate Feature Representation

在這項(xiàng)研究中,我們使用低層次的聲學(xué)表征:梅爾頻率聲譜圖來(lái)銜接系統(tǒng)的兩個(gè)部分。梅爾聲譜圖通過(guò)對(duì)時(shí)域波形進(jìn)行計(jì)算很容易得到,使用這樣一個(gè)表征,為我們獨(dú)立訓(xùn)練兩部分組件提供了可能。梅爾頻譜比波形樣本更平滑,并且由于其每一幀都是對(duì)相位不變的,所以更容易用均方誤差損失(MSE)進(jìn)行訓(xùn)練。梅爾頻率聲譜圖與線性頻率聲譜圖,即短時(shí)傅里葉變換的振幅是相關(guān)的。從對(duì)人類聽(tīng)覺(jué)系統(tǒng)的響應(yīng)測(cè)試中得到啟發(fā),梅爾頻譜是對(duì)短時(shí)傅里葉變換的頻率軸施加一個(gè)非線性變換,用較少的維度對(duì)頻率范圍進(jìn)行壓縮變換得到的。這個(gè)與聽(tīng)覺(jué)系統(tǒng)類似的頻率刻度方法,會(huì)強(qiáng)調(diào)語(yǔ)音的低頻細(xì)節(jié),低頻細(xì)節(jié)對(duì)語(yǔ)音的可理解度非常關(guān)鍵,同時(shí)淡化高頻細(xì)節(jié),而高頻部分通常被磨擦聲和其他爆裂噪聲所主導(dǎo),因此基本上在高保真處理中不需要對(duì)高頻部分進(jìn)行建模。正是由于具有這樣的屬性,基于梅爾刻度的特征表達(dá)在過(guò)去幾十年一直廣泛應(yīng)用于語(yǔ)音識(shí)別中。線性聲譜圖拋棄了相位信息(因此是有損的),而像 Griffin-Lim 這樣的算法可以對(duì)拋棄的相位信息進(jìn)行估計(jì),用一個(gè)短時(shí)傅里葉逆變換就可以把線性聲譜圖轉(zhuǎn)換成時(shí)域波形。梅爾聲譜圖拋棄的信息更多,因此對(duì)逆向波形合成任務(wù)提出了挑戰(zhàn)。但是,對(duì)比 WaveNet 中使用的語(yǔ)言學(xué)和聲學(xué)特征,梅爾聲譜圖更簡(jiǎn)單,是音頻信號(hào)的更低層次的聲學(xué)表征,因此使用類似 WaveNet 的模型構(gòu)造神經(jīng)聲碼器時(shí),在梅爾聲譜圖上訓(xùn)練語(yǔ)音合成應(yīng)該更直截了當(dāng)。我們將會(huì)展示用 WaveNet 架構(gòu)的修訂版從梅爾聲譜圖生成高質(zhì)量的音頻。
2.2 Spectrogram Prediction Network

在 Tactron 中,使用 50 毫秒幀長(zhǎng),12.5 毫秒幀移,漢明窗截取,然后施加短時(shí)傅里葉變換(STFT)得出線性頻譜。之后使用頻率范圍在 125 赫茲到 7.6K 赫茲之間的 80 通道的梅爾濾波器組對(duì) STFT 的線性頻率進(jìn)行過(guò)濾,后接對(duì)數(shù)函數(shù)進(jìn)行范圍壓縮,從而把 STFT 幅度轉(zhuǎn)換到梅爾刻度上。在進(jìn)行對(duì)數(shù)壓縮前,濾波器組的輸出振幅被穩(wěn)定到最小 0.01 以便限制其在對(duì)數(shù)域中的動(dòng)態(tài)取值范圍。聲譜圖預(yù)測(cè)網(wǎng)絡(luò)中,包含一個(gè)編碼器和一個(gè)引入注意力(attention)機(jī)制的解碼器。編碼器把字符序列轉(zhuǎn)換成一個(gè)隱層表征,繼而解碼器接受這個(gè)隱層表征用以預(yù)測(cè)聲譜圖。輸入字符被編碼成 512 維的字符向量,然后通過(guò)一個(gè) 3 層卷積,每層卷積包含 512 個(gè) 5 x 1 的卷積核,即每個(gè)卷積核橫跨 5 個(gè)字符,后接批標(biāo)準(zhǔn)化(batch normalization)和 ReLU 激活函數(shù)。像 Tacotron 中一樣,卷積層會(huì)對(duì)輸入字符序列的大跨度上下文(例如 N-grams)進(jìn)行建模。最后一個(gè)卷積層的輸出被傳遞給一個(gè) BiLSTM 層用以生成編碼特征,這個(gè) LSTM 包含 512 個(gè)單元(每個(gè)方向 256 個(gè)單元)。解碼器是一個(gè)自回歸的循環(huán)神經(jīng)網(wǎng)絡(luò),它從經(jīng)過(guò)編碼的輸入序列預(yù)測(cè)輸出聲譜圖,一次預(yù)測(cè)一幀。上一步預(yù)測(cè)出的頻譜幀首先被傳入一個(gè)每層由 256 個(gè)隱藏 ReLU 單元組成的雙層全連接的 "Pre-Net",我們發(fā)現(xiàn)作為一個(gè)信息瓶頸層(bottleneck),Pre-Net 對(duì)于學(xué)習(xí)注意力是必要的。Pre-Net 的輸出和注意力上下文向量拼接在一起,傳給一個(gè)兩層堆疊的由 1024 個(gè)單元組成的單向 LSTM。LSTM 的輸出再次和注意力上下文向量拼接在一起,然后經(jīng)過(guò)一個(gè)線性變換投影來(lái)預(yù)測(cè)目標(biāo)頻譜幀。最后,目標(biāo)頻譜幀經(jīng)過(guò)一個(gè) 5 層卷積的 "Post-Net" 來(lái)預(yù)測(cè)一個(gè)殘差疊加到卷積前的頻譜幀上,用以改善頻譜重構(gòu)的整個(gè)過(guò)程。Post-Net 的每層由 512 個(gè) 5 × 1 卷積核和一個(gè)批標(biāo)準(zhǔn)化處理組成,除了最后一層卷積,每層的批標(biāo)準(zhǔn)化處理都后接一個(gè) tanh 激活函數(shù)。我們?cè)?Post-Net 前后對(duì)均方誤差進(jìn)行最小化以輔助收斂,我們還實(shí)驗(yàn)了用混合密度網(wǎng)絡(luò)對(duì)輸出結(jié)果的分布進(jìn)行對(duì)數(shù)似然損失最小化,以期待可以避免輸出頻譜是一個(gè)直流常量,但是結(jié)果發(fā)現(xiàn)這樣做使得訓(xùn)練更困難,也沒(méi)能得到更好的合成樣本。并行于頻譜幀的預(yù)測(cè),解碼器 LSTM 的輸出與注意力上下文向量拼接在一起,投影成一個(gè)標(biāo)量后傳遞給 sigmoid 激活函數(shù),來(lái)預(yù)測(cè)輸出序列是否已經(jīng)完成,即 "停止標(biāo)志"。在推斷時(shí)允許模型動(dòng)態(tài)的決策什么時(shí)候結(jié)束頻譜生成,而不是在固定時(shí)間內(nèi)一直運(yùn)行。網(wǎng)絡(luò)中的卷積層使用概率為 0.5 的 dropout 進(jìn)行正則化處理,LSTM 層使用概率為 0.1 的 zoneout 進(jìn)行正則化處理。為了在推斷時(shí)給輸出結(jié)果帶來(lái)些變化,概率為 0.5 的 dropout 只施加在自回歸解碼器的 Pre-Net 上。與 Tacotron 對(duì)比,我們的模型使用更簡(jiǎn)潔的構(gòu)造模塊,在編碼器和解碼器中不使用 Tacotron 中的 "CBHG" 堆疊結(jié)構(gòu)和 GRU 循環(huán)層,轉(zhuǎn)而使用普通的 LSTM 和卷積層。我們沒(méi)有在解碼器的輸出中使用 "縮小因子(reduction factor)",即每個(gè)解碼步驟只輸出一個(gè)單獨(dú)的頻譜幀。
2.3 WaveNet Vocoder

我們使用 WaveNet 架構(gòu)的一個(gè)修正版,把梅爾頻譜特征逆變換為時(shí)域波形樣本。在 WaveNet 的原架構(gòu)中,有 30 個(gè)擴(kuò)大卷積層,分 3 個(gè)循環(huán)進(jìn)行,也就是說(shuō)第 k(k = 0...29)層的擴(kuò)張率等于?2k?(mod?10)。然而沒(méi)有像 WaveNet 那樣使用 softmax 層預(yù)測(cè)離散片段,我們借鑒了 PixelCNN++ 和最近 WaveNet 的改進(jìn)版,使用 10 元混合邏輯分布(10-component MoL)來(lái)生成頻率為 24k 赫茲的 16 位深的語(yǔ)音樣本。為了計(jì)算混合邏輯分布,WaveNet 的堆疊輸出傳給 ReLU 激活函數(shù),再連接一個(gè)線性投影層來(lái)為每一個(gè)混元預(yù)測(cè)參數(shù)(均值,對(duì)數(shù)刻度,混合權(quán)重)。損失函數(shù)使用標(biāo)定真實(shí)數(shù)據(jù)的負(fù)對(duì)數(shù)似然函數(shù)計(jì)算而得。
3 EXPERIMENTS & RESULTS
3.1 Training Steup

我們的訓(xùn)練過(guò)程包括,首先單獨(dú)訓(xùn)練特征預(yù)測(cè)網(wǎng)絡(luò),然后基于特征預(yù)測(cè)網(wǎng)絡(luò)的輸出,來(lái)訓(xùn)練修改版的 WaveNet我們?cè)趩蝹€(gè) GPU 上,使用最大似然訓(xùn)練規(guī)程來(lái)訓(xùn)練特征預(yù)測(cè)網(wǎng)絡(luò)(在解碼器端不是傳入預(yù)測(cè)結(jié)果而是傳入正確的結(jié)果,這種方法也被稱為 teacher-forcing),指定 batch size 為 64。使用 Adam 優(yōu)化器并設(shè)定參數(shù)?β1=0.9,β2=0.999,?=10?8,學(xué)習(xí)率初始值為?10?3?并在 50000 次迭代后下降到?10?5,使用權(quán)重為?10?6?的 L2 正則化。然后我們把特征預(yù)測(cè)網(wǎng)絡(luò)輸出的預(yù)測(cè)結(jié)果與標(biāo)定數(shù)據(jù)對(duì)齊,我們使用對(duì)齊處理后的預(yù)測(cè)結(jié)果,來(lái)訓(xùn)練修改過(guò)的 WaveNet,也就是說(shuō)這些預(yù)測(cè)數(shù)據(jù)是在 teacher-forcing 模式下產(chǎn)生的,所以每一個(gè)頻譜幀數(shù)據(jù)恰好與一個(gè)波形樣本對(duì)齊。訓(xùn)練過(guò)程中,使用 Adam 優(yōu)化器并指定參數(shù)β1=0.9,β2=0.999,?=10?8,學(xué)習(xí)率固定為?10?4,把 batch size 為 128 的批訓(xùn)練分布在 32 顆 GPU 上執(zhí)行并同步更新,這有助于使用最近的更新來(lái)平衡整個(gè)模型的權(quán)重。所以我們?cè)诟戮W(wǎng)絡(luò)參數(shù)時(shí)采用衰減率為 0.9999 的指數(shù)加權(quán)平均 – 這個(gè)處理用在推斷中。為了加速收斂,我們用 127.5 的縮放因子來(lái)放大目標(biāo)波形,這使得混合邏輯層的初始輸出更接近最終分布我們?cè)趦?nèi)部美式英語(yǔ)數(shù)據(jù)集上訓(xùn)練所有的模型,這個(gè)數(shù)據(jù)集包含 24.6 小時(shí)的一位專業(yè)女性播音員的語(yǔ)音數(shù)據(jù)。數(shù)據(jù)集中的所有文本都被拼寫出來(lái)了,比如”16” 被寫成”sixteen”,即所有的模型都是在預(yù)處理過(guò)的數(shù)據(jù)上訓(xùn)練的。
3.2 Evaluation
在推斷階段生成語(yǔ)音的時(shí)候,是沒(méi)有標(biāo)定數(shù)據(jù)的,所以與訓(xùn)練階段的 teacher-forcing 做法不同,我們?cè)诮獯a處理中直接傳入上一步的預(yù)測(cè)結(jié)果我們從測(cè)試數(shù)據(jù)集中隨機(jī)選擇了 100 個(gè)文本作為評(píng)估數(shù)據(jù)集,用這個(gè)評(píng)估數(shù)據(jù)集生成的語(yǔ)音發(fā)送給類似 Amazon Mechanical Turk 這樣的打分服務(wù)團(tuán)隊(duì),進(jìn)行主觀平均意見(jiàn)評(píng)分(MOS),每個(gè)評(píng)估數(shù)據(jù)至少有 8 個(gè)人打分,分值從 1 分到 5 分,打分間隔為 0.5。每個(gè)模型的評(píng)估都是相互獨(dú)立實(shí)施的,因此分配給評(píng)分人打分時(shí),兩個(gè)不同模型的輸出結(jié)果不會(huì)被直接比較。注意雖然評(píng)估數(shù)據(jù)集中的評(píng)估樣本實(shí)例不包含在訓(xùn)練數(shù)據(jù)集中,但是兩個(gè)數(shù)據(jù)集中仍然有一些重復(fù)的模式和相同的詞語(yǔ),與用隨機(jī)詞語(yǔ)生成的數(shù)據(jù)集相比,這可能會(huì)導(dǎo)致得到一個(gè)較高的 MOS 得分。但是這樣做我們可以很容易與標(biāo)定真實(shí)數(shù)據(jù)進(jìn)行比較。因?yàn)樗袇⑴c比較的系統(tǒng)都在同一數(shù)據(jù)集上進(jìn)行訓(xùn)練,所以互相比較仍然是有意義的。

表 1 展示了我們的方法和其他方法的對(duì)比結(jié)果。為了更好的隔離使用梅爾聲譜圖作為特征所帶來(lái)的影響,我們使用類似上文介紹的方法對(duì) WaveNet 架構(gòu)進(jìn)行了修改,并用語(yǔ)言學(xué)特征訓(xùn)練 WaveNet 模型,并對(duì)其結(jié)果進(jìn)行了比較。我們還比較了使用線性聲譜圖和 Griffin-Lim 合成語(yǔ)音的原始 Tacotron 模型,以及 Google 內(nèi)部已經(jīng)投入生產(chǎn)系統(tǒng)的拼接式和參數(shù)式基線系統(tǒng)。我們發(fā)現(xiàn),本次提出的系統(tǒng)顯著優(yōu)于所有其他 TTS 系統(tǒng),其結(jié)果可以與標(biāo)定真實(shí)語(yǔ)音相媲美。

我們還對(duì)我們系統(tǒng)的合成結(jié)果和標(biāo)定真實(shí)語(yǔ)音進(jìn)行了細(xì)致的對(duì)比評(píng)估,評(píng)分者被要求給出一個(gè) -3(合成結(jié)果比標(biāo)定真實(shí)語(yǔ)音差很多)到 3(合成結(jié)果比標(biāo)定真實(shí)語(yǔ)音好很多)之間的分?jǐn)?shù)。整體平均分?0.270 ± 0.155 說(shuō)明評(píng)分者在很小的程度上更喜歡標(biāo)定真實(shí)語(yǔ)音,但這個(gè)程度在統(tǒng)計(jì)學(xué)上是顯著的。細(xì)致的剖析請(qǐng)參考圖 2。評(píng)分者的點(diǎn)評(píng)表明偶爾的發(fā)音錯(cuò)誤是更喜歡標(biāo)定語(yǔ)音的主要原因。
在附件 E [11] 中,我們手工分析了在這 100 個(gè)句子的測(cè)試數(shù)據(jù)集中,系統(tǒng)的出錯(cuò)模式。用這些句子合成的語(yǔ)音中,無(wú)單詞重復(fù),6 次發(fā)音錯(cuò)誤,1 次跳詞,23 次韻律不自然,例如重音放在了錯(cuò)誤的音節(jié)或者單詞上,或者不自然的音調(diào)。最終我們的模型達(dá)到了 4.354 的 MOS 分?jǐn)?shù)。這些結(jié)果表明,系統(tǒng)能夠可靠的關(guān)注到全體輸入,但在韻律建模上還有改善空間
最后,我們對(duì)使用 37 個(gè)新聞?lì)^條合成的語(yǔ)音進(jìn)行了評(píng)估,以測(cè)試系統(tǒng)在領(lǐng)域外數(shù)據(jù)上的泛化能力。在這個(gè)評(píng)估中,我們的模型得到了 4.148±0.124 的 MOS 分?jǐn)?shù),而使用語(yǔ)言學(xué)特征訓(xùn)練的 WaveNet 得到了 4.137 ± 0.128。對(duì)兩個(gè)系統(tǒng)生成的語(yǔ)音進(jìn)行細(xì)致的對(duì)比評(píng)估也表明二者不分伯仲 – 對(duì)我們系統(tǒng)的偏好在統(tǒng)計(jì)學(xué)上是非顯著的 0.142±0.338。查驗(yàn)評(píng)分者的點(diǎn)評(píng)也表明我們提出的神經(jīng)系統(tǒng)模型生成的語(yǔ)音更自然,更接近人類。這個(gè)結(jié)果指出了端到端的神經(jīng)方法所面臨的一個(gè)挑戰(zhàn):模型訓(xùn)練需要在覆蓋目標(biāo)領(lǐng)域的數(shù)據(jù)上進(jìn)行。