• 沒有找到結果。

在眾多聲碼器架構中,我們發現一些細節會影響最終訓練的穩定性、生成結果,

以下隨著聲碼器訓練過程將發現成果一一列舉出。

3.4.1 前處理(Pre-process)

從實驗觀察中,在訓練聲碼器的時候,對於取出來的聲學特徵值來說有沒有做標 準化(normalize),對最後生成結果幾乎沒有影響,深層學習架構都會學習到合適 對應的參數。 因此只要針對自己的需求建立模型加以訓練即可。

3.4.2 升取樣(Upsample)模組設計

聲學特徵值時間長度對應通常相較於原始音訊檔來說會是其降取樣(downsample)的 輸出,以本次抽取聲學特徵值的方式就是音框平移,因此我們需要將聲學特徵值 長度倍數增加至音框平移量,才能讓輸入聲學特徵值和輸出結果對齊(align)。

而我們通常會將這樣升取樣模組設計當作條件,希望輸出結果能依據條件輸 出對應合適的音訊波形, 而實驗觀察以圖3.12的方式設計升取樣模組, 我們取升 取樣倍數做為複製自己的次數後,過一層卷積層, 對於這樣的模組通常會連續過 幾回,而讓每輪複製自己次數的乘積為總共升取樣倍率,再將其餵進上述分別介 紹的聲碼器模組,如此聲碼器生成的結果會更穩定。

舉例來說如果需要升取樣的比率為200倍的話,通常會設計成複製4, 4, 5的架 構,也就是先複製4次過一層卷積層,再複製4次過一層卷積層,最後複製5次過一

圖 3.12: 升取樣模組架構

層卷積層。 這樣子的架構會比直接複製到正確的取樣比率或是直接線性增長至正 確取樣比率的生成結果穩定。

3.4.3 訓練過程

WaveNet, FFTNet這 種 會 將前一刻時間點餵進模型當作下 一刻時間輸入的模 型,也就是x1, ..., xt−1輸出xt當作訓練目標。 如果在計算損失函數時,我們給 定x1, ..., xt−1,輸出x2, ..., xt做計算,收斂速度會比只算xt的損失函數快很多。

為避免生成結果不完美,而自回歸模型連續的性質影響到生成結果,可 參 考FFTNet原 始 文 章 所 提出加雜訊的方法。 本論文中所提到三種自回歸模 型(WaveNet, WaveRNN, FFTNet)都是透過分類問題的損失函數做計算,而自回歸 模型的聲碼器模型在做分類時比較容易錯分至向上或下一個分類,比方說原本 想分類至第i類別,比較容易分類至i-1, i, i+1,而在測試時,如果前一個時刻錯分

至i-1或i+1,可能影響自回歸模型後面的序列不知如何輸出。 因此在訓練時讓輸 出加上一個平均為0,標準差為1的雜訊,因為分類目標都是整數,故將雜訊取四 捨五入之後,加上原本的分類類別當作訓練目標。 如此訓練的目標可以讓生成結 果更穩定,不容易因為測試時產生錯誤的分類而導致後面的序列生成結果崩潰。

這種訓練方式對於所有自回歸模型的聲碼器架構都可以使用。

3.4.4 生成過程

原始FFTNet的文章中有提及條件取樣(conditional sampling),也就是在生成時,他 並不是對於模型輸出直接取機率最大的值當輸出結果,而是取機率取樣當作輸出 結果,且會根據該時間點為清音或濁音,調整機率分佈變更加銳利再做取樣。 但 在實驗觀察中有沒有採取機率取樣,或是調整機率分佈跟原本取最大的機率當作 輸出,其實影響微乎其微,幾乎聽不出來。

3.4.5 後處理(Post-process)

在自回歸模型的架構中,有時候會聽到類似滑鼠點擊聲,聽起來有點滋滋作響,

這是由於自回歸模型的架構所導致的, 當生成品質偏低的時候,有很明顯的滑鼠 點擊聲時,可通過一些傳統降噪的方式,如logmmse [20],可以稍微改善這類型 的雜訊。

在非自回歸模型的結果若生成品質低落時,容易發生糊糊的聽起來有層薄膜 而不清楚的感覺,此類型的輸出品質比較不能透過後處理的方式來提升生成品 質。

3.5 本章總結

本章節探討本篇論文所使用的所有模型架構以及在實驗中的一些觀察,並比較其 參數量和產生音檔速度,在後續的章節會探討其生成品質和強健性的比較。

第 四 章 多種聲碼器在聲學特徵值的強健性 比較

4.1 簡介

聲碼器是一種生成模型,容易發生過度貼合(overfitting)的問題,為了瞭解不同聲 碼器對於不同訓練資料是否會發生過度貼合的問題,而哪一種聲碼器具有更好 的普遍化(generalization)的能力。 我們針對4種不同的聲碼器WaveNet, WaveRNN, FFTNet, Parallel WaveGAN分別訓練在多種訓練集,並分別測試在不同的測試集,

並分析各聲碼器所適合的訓練集以及適合應用在哪些問題中。