2和wavenet有何異同?
論文地址:
natural tts synthesis by conditioning wavenet on mel spectrogram predictions
https://arxiv.org/pdf/1712.05884.pdf
論文翻譯
https://my.oschina.net/stephenyng/blog/1620467
一、模型框架
a. 一個引入注意力機制(attention)的基于循環seq2seq的特征預測網絡,用于從輸入的字符序列預測梅爾頻譜的幀序列;
b. 一個WaveNet網絡的修訂版,用于基于預測的梅爾頻譜幀序列來學習產生時域波形樣本。
c. 連接層:低層次的聲學表征-梅爾頻率聲譜圖
1.梅爾頻率聲譜圖作為銜接層:
a.梅爾頻譜比波形樣本更平滑,并且由于其每一幀都是對相位不變的,所以更容易用均方誤差損失(MSE)進行訓練
b.線性頻率聲譜圖:短時傅里葉變換的振幅
梅爾頻譜是對短時傅里葉變換的頻率軸施加一個非線性變換,用較少的維度對頻率范圍進行壓縮變換得到的.
強調語音的低頻細節,低頻細節對語音的可理解度非常關鍵,
同時淡化高頻細節,而高頻部分通常被磨擦聲和其他爆裂噪聲所主導,因此基本上在高保真處理中不需要對高頻部分進行建模.
注:線性聲譜圖拋棄了相位信息(因此是有損的),而像Griffin-Lim這樣的算法可以對拋棄的相位信息進行估計,用一個短時傅里葉逆變換就可以把線性聲譜圖轉換成時域波形。
梅爾聲譜圖拋棄的信息更多,因此對逆向波形合成任務提出了挑戰。
2.頻譜預測網絡
a.tacotron的做法
在Tactron中,使用50毫秒幀長,12.5毫秒幀移,漢寧窗截取,然后施加短時傅里葉變換(STFT)得出線性頻譜。
然后使用頻率范圍在125赫茲到7.6K赫茲之間的80通道的梅爾濾波器組對STFT的線性頻率進行過濾,
后接對數函數進行范圍壓縮,從而把STFT幅度轉換到梅爾刻度上。
在進行對數壓縮前,濾波器組的輸出振幅被穩定到最小0.01以便限制其在對數域中的動態取值范圍。
b.tacotron2的做法
(1)編碼器
I.輸入字符被編碼成512維的字符向量
II.3層卷積,每層卷積包含512個5 x 1的卷積核,即每個卷積核橫跨5個字符,后接批標準化(batch normalization)[18]和ReLU激活函數
III.雙向 LSTM層用以生成編碼特征,這個LSTM包含512個單元(每個方向256個單元)
(2)引入注意力機制的解碼器
解碼器是一個自回歸的循環神經網絡
I.一個每層由256個隱藏ReLU單元組成的雙層全連接的“pre-net”
II.pre-net的輸出和注意力上下文向量拼接在一起,傳給一個兩層堆疊的由1024個單元組成的單向LSTM
III.LSTM的輸出再次和注意力上下文向量拼接在一起,然后經過一個線性變換投影來預測目標頻譜幀
IIII.目標頻譜幀經過一個5層卷積的“post-net”來預測一個殘差疊加到卷積前的頻譜幀上
post-net的每層由512個5 × 1卷積核和一個批標準化處理組成,除了最后一層卷積,每層的批標準化處理都后接一個tanh激活函數
網絡中的卷積層使用概率為0.5的dropout進行正則化處理,LSTM層使用概率為0.1的zoneout進行正則化處理。
為了在推斷時給輸出結果帶來些變化,概率為0.5的dropout只施加在自回歸解碼器的pre-net上
c.與Tacotron對比
新模型使用更簡潔的構造模塊,在編碼器和解碼器中不使用Tacotron中的“CBHG”堆疊結構和GRU循環層,轉而使用普通的LSTM和卷積層。我們沒有在解碼器的輸出中使用“縮小因子(reduction factor)”,即每個解碼步驟只輸出一個單獨的頻譜幀。
3.WaveNet 聲碼器
a.梅兒頻譜特征表達逆變換為時域波形樣本。
在WaveNet的原架構中,有30個擴大卷積層,分3個循環進行,也就是說第k(k = 0 : : 29)層的擴張率等于2的p次方,p等于k (mod 10)。
b.我們沒有像WaveNet那樣使用softmax層預測離散片段,我們借鑒了PixelCNN++和最近WaveNet的改進版,
使用10元混合邏輯分布(10-componentMoL)來生成頻率為24k赫茲的16位深的語音樣本。
為了計算混合邏輯分布,WaveNet的堆疊輸出傳給ReLU激活函數,再連接一個線性投影層來為每一個混元預測參數(均值,對數刻度,混合權重)。
損失函數使用標定真實數據的負對數似然函數計算而得。
c.原始的WaveNet使用5毫秒幀率下的語言特征,音素時長,以及對數基頻(F0)。
我們在實驗中注意到在5毫秒幀率過于緊密,導致預測頻譜數據幀時有顯著的發音問題,
因此我們修改了WaveNet架構,在轉置卷積網絡中通過使用2層上采樣把幀率改成了12.5毫秒。
---------------------