作者: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表示每一幀的絕對和相對位置。
是幀的絕對位置
channel index
vector dimension
在NMT任務中,encoder和decoder都是在語言空間編碼,而TTS是在不同的空間編碼。因此NMT的fixed positional embedding就不太合適了。因此,對 triangle positional embeddings加一個可訓練的參數 ,從而自動在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(兩者比較打分,哪個更傾向)。
- 譜清晰度(高頻部分)對比展示