Neural Speech Synthesis with Transformer Network

作者:LiNaiHan
單位:電子科學與技術 & MSRA & STCA
會議:AAAI
時間:2019.4

abstract

tacotron的問題:(1)train和infer的效率低;(2)用的是RNN,很難建模長時依賴。
本文用NMT的multi-head self-atttention替代tacotron2中的RNN和attention。(1)encoder和decoder可以並行構建,效率提高。(2)因爲self-attention,任何兩個時刻的輸入都可以直接聯繫起來,解決了長時依賴的問題。
輸入phoneme序列,輸出mel序列,用wavenet合成語音。

introduction

回顧了一下TTS的傳統方法和深度學習的方法實現。
深度學習依賴RNN/LSTM構建長時依賴。RNN的結構中,給輸入產生序列輸出,其中當前的輸出會取決於當前以及之前時刻的輸入,這就導致了模型的非並行性。此外,許多時間步之間的信號因爲多次重複處理可能已經存在偏差。因此NMT任務中用transformer結構替代了RNN/LSTM。
本文結合了transformer和tacotron各自的有點,提出transformer-TTS,採用self-attention作用:(1)替代RNN建模,不需要過去的時刻,提高並行性;(2)替代tacotron的attention,multi-head多方面建模。
transformer縮短了前傳(反傳)中信號通過任何兩個輸入(輸出)組合之間的路徑長度(低至1)。這對建模韻律很有幫助,因爲某一處的韻律不僅取決於附近的詞,還依賴句子級的語義。

3. Neural TTS with Transformer

3.1 Text-to-Phoneme Converter

英文的發音有規律,神經網絡可以學習這一規律,但是需要大量數據量,並且難以某些特殊的case。用的是專門的rule system將字符轉換成音素。

3.2 Scaled Positional Encoding

因爲transformer結構的非自迴歸性,打亂輸入順序,同一輸入對應的輸出是一樣的。因此需要考慮輸入幀的絕對位置。用 triangle positional embeddings表示每一幀的絕對和相對位置。
在這裏插入圖片描述

pospos是幀的絕對位置
2i,2i+12i, 2i+1 channel index
dmodeld_{model} vector dimension

在NMT任務中,encoder和decoder都是在語言空間編碼,而TTS是在不同的空間編碼。因此NMT的fixed positional embedding就不太合適了。因此,對 triangle positional embeddings加一個可訓練的參數 α\alpha,從而自動在encoder和decoder-prenet 的輸出之間調節scale。
??沒懂scale是啥
在這裏插入圖片描述

3.3 Encoder Pre-net

延用tacotron2的3層CNN結構,text-embedding(512-d),channel-512,batch norm, ReLU。因爲ReLU的輸出(0-1),triangle positional embeddings範圍【-1,1】,因此將0-center的向量直接與非負向量相差會有問題,模型性能也會被幹擾。
作用:(1)用一層線性層爲center consistent進行調整。
(2)和triangle positional embeddings有一致的維度

3.4 Decoder Pre-net

結構:2層256的全連接層,ReLU激活
ps.(1)嘗試了無激活的fc層,但是attention對齊矩陣不對
(2)嘗試把隱層增加到512,但是除了訓練時間增大,結果沒有明顯變好
作用:把mel譜建模到phoneme embedding相同的子空間
解釋:phoneme和mel來自不同的子空間,但是phoneme embedding是trainable,thus adaptive。通過decoder pre-net 可以測量<phoneme, mel spec>的相似度。
結論:推測mel譜的子空間是一個256維度可以表示的複雜空間,(4.6有證明—decoder的positional embedding scale維度比encoder小。)

3.5 Encoder

multi-head attention 取代了bi-directional RNN,長時依賴(長句子韻律更好),並行計算。

3.6 Decoder

multi-head attention取代location sensitive attention,self-atttehtion取代RNN。把multi-head 的dot product修改成location sensitive,但是會使計算量加倍。

3.7 Mel Linear, Stop Linear and Post-net

兩個單獨的projection預測mel和stop token。
只有stop點的樣本爲正,其他都爲負。這種不平衡可能會使stop無法正常阻斷,爲此我們在尾部正停止的點加(5-8)的正權重平衡。

4 Experiment

4.1 training setupment

25h的英文女生數據集,每句話千50ms sil,後100ms sil。
固定的batch size會有一些問題:(1)語句長短不一,會存在一些很長的句子,這樣會消耗大量的計算資源。(2)batch size小,會使得模型的並行計算優勢不突出。
使用dynamic batch size----最大的mel 幀數是保持不變的。
單卡的訓練效果不好,合成語音質量很差;換到多卡,增大batch size這個問題得到解決。

4.4 Training Time Comparison
模型 每一步的訓練時間 參數量 總訓練時間
transformer 0.4s 2倍 3天
tacotron 1.7s 1 4.5天
4.5 Evaluation
  • MOS,CMOS測試:測試baseline,tacotron和transformer的MOS,比較tacotron和transformer的CMOS(兩者比較打分,哪個更傾向)。
  • 譜清晰度(高頻部分)對比展示
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章