時間:2017.4
作者:yuxuan wang
單位:Google inc
一個text-to-speech的系統包含text analysis fronted, an acoustic model and an audio synthesis module,搭建需要多方面的專業知識,而且這些模型都單獨訓練,誤差會被累加,訓練難度較大。
我們提出一個直接從character合成speech的集成的端到端系統—tactron。給出<text, speech>對,模型可以從任何起始點開始訓練,在frame-level合成語音,性能優越。
端到端的合成優點在於
text-to-speech:輸出是連續的,通常輸出序列是長於輸入序列,而且對於同一個文本,可能會有不同的speech可以對應,這也是合成的難度所在。
輸入:character
輸出: raw spec
不需要phoneme-level的對齊 ,生成評分3.8的英文語音。
Wavenet是一個強大的聲碼器,在TTS的合成也有效,但是由於它sample-level的自迴歸特性,需要TTS fronted 的語音特性,因此只是替代了聲學模型和聲碼器,並不能稱爲端到端。
wang wenfu(中科院自動化所)首先提出全部用神經網絡做seq2seq TTS with attention,但是他需要一個預訓練的HMM幫助seq2seq作對齊,很難說清楚seq2seq學到多少對齊。其次,在訓練時做了一些trick,對韻律有損。而且,他預測的是聲碼器的參數,因此還需要一個聲碼器;輸入是phoneme,輸出有一些限制。
char2wav也是預測是聲碼器參數,然後接一個 需要預訓練的sampleRNN聲碼器。
Tactron直接預測raw spec,可以從頭開始訓練(trained from scratch)
Tactron是基於seq2seq model with attention,它包括一個encoder, attention-based decoder, a post-processing net.
(本文首提)是提取seq representation的強大模型。
關於該模型值得注意的幾點:
1.模型先使用一系列的一維卷積網絡,有一系列的filter,filter_size從1到K,形成一個Conv1D Bank。這樣的作用相當於使用了一系列的unigrams, bigrams直到K-grams,儘可能多的拿到輸入序列從local到context的完整信息。其實這樣的模型,與之前我們提到過的IDCNN(Iterated Dilated Convolutionary Nerual Network)有異曲同工之妙。而IDCNN相比較起來有更少的參數,不知道如果把CBHG的Conv1D Bank換成IDCNN是怎樣的效果。
2.模型在最終的BiGRU之前加入了多層的Highway Layers,用來提取更高層次的特徵。Highway Layers可以理解爲加入了本來不相鄰層之間的「高速公路」,可以讓梯度更好地向前流動;同時又加入一個類似LSTM中門的機制,自動學習這些高速公路的開關和流量。Highway Networks和Residual Networks、Dense Networks都是想拉近深度網絡中本來相隔很遠的層與層之間的距離,使很深的網絡也可以比較容易地學習。
卷積的輸出堆疊在一起,在時間軸作max-pool,以增加局部不變性。
3.模型中還使用了Batch Normalization(繼ReLU之後大家公認的DL訓練技巧),Residual Connection(減少梯度的傳播距離),Stride=1的Max-pooling(保證Conv的局部不變性和時間維度的粒度)以及一個時髦的BiGRU。
encoder的作用是提取文本序列的特徵 ,輸入是character seq,每一個文字表示成one-hot vector,並且嵌入到連續向量中。將embedding 經過pre-net作非線性變換,pre-net中用帶有drop out的bottleneck layer,可以加速收斂,增強泛化。
CNHG的attentionion模塊將pre-net的輸出轉成最終encoder 的表示,而且和RNN encoder相比減少了過擬合和錯誤發音。
我們使用一個文本相關的基於tanh的attention decoder,在每個解碼時間步,RNN提供attention query,將context vector和attention的輸出拼接,作爲decoder RNN的輸入。
模型架構
post-processing的任務就是 把seq2seq輸出的target轉成可以轉成wav的target。因爲我們用的是GL vocoder,所以需要target是線性幅度譜(如stft變換的)。
我們採取消融分析去理解模型中的關鍵部分,和生成模型一樣,很難從客觀的指標去進行評價。
scheduled sampling是seq2seq的模型的訓練階段,訓練階段解碼器在最大化第t個元素概率時,標準序列到序列模型使用上一時刻的真實元素yt−1作爲輸入。設上一時刻生成的元素爲gt−1,Scheduled Sampling算法會以一定概率使用gt−1作爲解碼器輸入。
標準的序列到序列模型中,如果序列前面生成了錯誤的元素,後面的輸入狀態將會收到影響,而該誤差會隨着生成過程不斷向後累積。Scheduled Sampling以一定概率將生成的元素作爲解碼器輸入,這樣即使前面生成錯誤,其訓練目標仍然是最大化真實目標序列的概率,模型會朝着正確的方向進行訓練。因此這種方式增加了模型的容錯能力。
3.82的MOS評分