第三章 語音合成技術實作與改進
3.1 樣本音節的製作與選取
初期的樣本音節是以單音節錄製而成,因此音節長度有過長的現象(平均長 度 0.65s),然而使用 TD-PSOLA 合成語音,若樣本音節與合成音節的長度相差太 多,會造成合成品質不佳【1】,為了改善這個問題,我們將從 Treebank 連續語 料庫中,分別對每個中文 411 音節選取在音節長度上具有長、中、短性質的三個 樣本音節,使得合成時能夠選出最接近合成音節長度的樣本音節,以增進合成品 質。其挑選的原則如下:
最大值
最小值 平均值
1. 在音節長度最小值、平均值、最大值附近尋找適合的音節,如圖 三-2。
圖 三-2:三個樣本音節在音節長度上的分佈情形
2. 選取適合的音節:
對於一個音節是否為合適的樣本音節,我們可從此音節與上、下音節相 連時的聲學特性(Acoustic features)來判斷。在此我們主要是以 pitch contour 和 energy level 兩種參數,將音節相連的情況分為四類,這四類 分別為 pitch contour 相連、無明顯 energy dip,pitch contour 相連、
energy dip 夠深,pitch contour 不相連、無明顯 energy dip,pitch contour 不相連、energy dip 夠深。詳細的分類原則與例子在 2.2.1 節中已說明,
而我們認為除了 pitch contour 相連、無明顯 energy dip 為不合適的音節 外,其餘的情況皆可作為合適的樣本音節。唯有在實際合成,有些種類的樣 本音節需再經過處理。例如當 pitch contour 不相連、energy level 過高 時,我們需將樣本音節的尾音以能量平滑下降的方式作處理。
3. 編修樣本音節
觀察選取出的樣本音節後,發現音節子音為摩擦音時,子音能量有過大 的現象,如圖 三-3 所示,這對之後合成聲音的品質造成相當程度的影響,
因此,對於這類的情況,我們在不影響音節聲音品質下,將子音能量降低。
調降的詳細的過程如下:
a. 求出子音、母音的最大能量
E
u、E
v,並設定調降能量為p dB。
b. 依式(3.1)、(3.2)將求出 、 求出並設定 為 1,其中
y
為 能量過渡的時間長度。
G
uG
tG
vc. 最後依式(3.3)將聲音訊號x n
( )
調整至x n′ ( )
。( )
10
20v u
E E p
G
− −
=
(3.1)( 1
u)
依照上述的方式,嘗試調降 3dB、6dB、9dB、後,發現降 9dB 後的聲音 品質仍佳,且波形在能量過度區間的改變影響不大,如圖 三-4,因此我們
編修前波形
編修後波形(降9dB)
調降區間 過渡區間 不變區間
圖 三-4:編修前與編修後(能量降 9dB)的波形
4. 標示基調標記位置
當樣本音節選取後,在已知音節切割位置及 pitch contour 的情況下,
我們以半自動的方式,標示出音節正確的基調標記(pitch mark)位置,
d. 利用 3.4、3.5 式,取出一個中心點在
p 、長度為
pree. 利用 3.6 式挑選出搜尋範圍內兩波形相關係數(Cross correlation)最 大值的點
p
*cand,為下一個基頻標記位置。cand arg max
L
經過以上的步驟,我們已取得樣本音節、樣本音節的 pitch mark,及所有 樣本音節的聲學資訊,這些聲學參數將紀錄於波形表(wave table)裡,提供合 成時,選取樣本音節的依據。
在下一小節裡,我們將介紹基頻同步疊加(PSOLA)合成法的原理,並應用 時域基頻同步疊加(TD-PSOLA)演算法作為我們合成器的主要核心。