表 1. 6:The Penn Treebank POS tag set[14]
1.5 章節概要說明
本論文一共分為五章,其各章節內容分配如下:
第一章:緒論。
第二章:HMM-based 語音合成系統 HTS。
第三章:英文語音合成系統實作 第四章:實驗結果及分析
第五章:結論與未來展望。
6
第二章 HMM-based 語音合成系統
本章描述本論文的語音合成系統架構並簡介所使用的 HMM-based 語音合成系統 (HTS)。各節內容如下:2.1 節:介紹整個 HTS 系統架構; 2.2 節:基本的英文語音特性; 2.3 節:來源濾波器模型; 2.4 節:廣義梅爾倒頻譜係數; 2.5 節:基頻參數模型; 2.6 節:狀態 持續時間機率模型; 2.7 節:文本相關模型; 2.8 節:全域變異數。
2.1 HTS 基本架構簡介
隱藏式馬可夫模型早期大量應用在語音辨識系統中,它成功地以機率模型描述發音 的現象。近年來則被應用到語音合成上,可說是目前語音合成系統中,合成品質相當好 的系統。此系統是以統計參數式的方式來合成語音,更佳彈性且不需耗費大量時間錄製 語料與大量空間儲存語料。並透過參數的轉換與調適[10][11],可輕易產生出不同語者 特性的語音。
本研究使用的 HTS 為日本名古屋大學資工研究所開發出來的 HTS 2.1(HMM-based Speech Synthesis System, version 2.1)[8 ],些系統為基於 HTK(Hidden Markov Model Toolkit 3.4)技術,所發展出針對使用隱藏式馬可夫模型建構的語音合成系統。基於隱藏 式馬可夫模型的語音合成系統如圖 2.1 所示:
7
圖 2. 1 HMM-based 語音合成系統架構圖[12]
如圖 2.1 所示,HTS 分為訓練部分與合成部分,在訓練部分,由語料中抽取其頻譜 成分,即廣義梅爾倒頻譜參數(Mel-Generalized Cepstral coefficients, MGC)及其動態特徵 向量,與激發訊號部分 log F0 及其動態特徵向量。狀態持續時間機率密度函數去模擬語 音在時間上的構造,搭配相對應的文字分析器產生文字標記,再配合適當的文脈相關問 題集,訓練狀態合併分裂樹,產生與文脈相對應的 HMM 模型。合成部分則是輸入文字,
透過文字分析器產生與前後文相關的文字標記檔,透過分類與回歸樹(CART)演算法,
挑選對應的 HMM 模型,經由生成參數演算法,產生頻譜參數與激發訊號參數,再透過 梅爾對數頻譜近似濾波器 (Mel Log Spectrum Approximation filter, MLFA filter)[13 ]產生 語音信號。
8
2.2 英文語音特性
英文的音素可大致分為母音(15 個)和子音(24 個)。首先介紹母音,母音可根據舌頭 在口腔上不同的位置做分類例:1. 前後;2. 上下。如圖 2.2。
圖 2. 2 發英文母音時舌頭的相對位置[14]
3. 嘴脣形狀是否是圓形,4. 是否為 tense:一種相對量,與其它發音相近的母音比 較起來。例如/i/被分為 tense 母音,而/ɪ/被分為 lux 母音,/u/被分為 tense 母音,而/ʊ/被 分為 lux 母音。依照上述母音發音特性,我們可將母音分類為如表 2.1。
9
旁流音(Lateral liquid) /l/ lean, kneel Vowel-like 舌頭中間且氣流從旁過 滑音(Glide) /y/,/w/ yes, well Vowel-like
10
Consonant Labels Consonant Examples Voiced? Manner
b big, able, tab + plosive
11
2.3 來源濾波器模型
提出的 TTS 系統是基於來源濾波器模型(source-filter model)。為了建構這樣的系統,
首先必須從資料庫中抽取特徵參數來訓練,抽取特徵參數的目的就是為了模擬說話時的 口腔特性,將聲音分解為激發訊號與口腔模型兩部分,後面將針對這兩種特徵參數進行 詳細討論。首先介紹的是來源濾波器模型,
為了將語音波形以數學化的形態表示,來源濾波器模型是一種時常被使用的表示法。
如圖 2.3,轉移函數 H(z)模擬口腔結構。激發訊號的選擇,由語音是有聲音或無聲音決 定。當激發訊號是有聲音時被模擬成一個周期性脈衝串,無聲音時被模擬成一個白雜訊。
激發訊號 e(n)通過一個隨時間改變參數的線性系統 H(z)產生語音訊號 x(n)。
圖 2. 3 來源濾波器模型
藉由激發訊號 e(n)和口腔模型的頻率響應 h(n)做 convolution 可產生語音訊號 x(n)
x n h n * e n
(2.1)符號*代表離散的 convolution。
12 正(warped frequency scale)下作反傅利葉轉換。可寫成(2-1)式:
( )
13
14
表 2. 4:各頻譜模型表示與參數之間關係
α=0 |α|<1≠0
γ=-1
全極點模型 全極點校正模型(warped all-pole)
γ=0
倒頻譜 梅爾倒頻譜γ=1
全零點模型 全零點校正模型-1≦γ≦1
廣義倒頻譜 廣義梅爾倒頻譜廣義梅爾倒頻譜藉由調整參數(α,γ),可以藉由找出最適當的參數(α,γ),在相 同階數清況下,更有彈性的表示頻譜特性,獲得更精準的頻譜分析,因此在語音辨識、
語音編碼和語音合成上很廣泛的應用。
2.5 基頻參數模型
基頻(F0)在發有聲(voiced)音時是一個連續的變數,而在無聲音時為 0,因此並不能 使用單純的離散或連續 HMM 建立 F0 模型。此論文 F0 輸出狀態的機率是用多維空間機 率分佈 MSD(multi-space probability distribution)[17],做法是將 F0 由一維的連續變數表 示有聲區間,0 維的單一值 0 表示無聲音。
2.5.1 多空間機率分佈
首先將先介紹多維度空間機率分佈(Multi-Space Probability Distribution)。考慮一個 樣本空間Ω如圖 2.4
15
圖 2. 5 多維空間機率分佈與觀測資料[12]
這裡Ωg是一個
n
g維的實數空間R
ng,空間索引是 g。每個空間Ω
g有自己的出現機率
ω
g, i.e. P(Ω
g) = ω
g。如果n
g> 0 每個空間有一個機率密度函數 N
g(x), x ∈ R
ng,
這裡 ng g( ) 1
R
N d
x x
。我們假設當n
g= 0 時,Ω
g只包含一個樣本點。根據上述,P(E) 是機率分佈我們有1 1
( ) ( ) ng ( ) 1
G G
g g g
g g R
P P N d
x x
(2.7)值得注意的是,雖然當
n
g= 0,因為 Ω
g只包含一個樣本點,Ng(x)不存在。為簡化
表示,我們定義當n
g= 0 時 N
g(x) ≣ 1。
本論文中所考慮的每個事件 E,被表示成一個隨機變數 O,由一組 n 維連續隨機變 數 x ∈
R
ng 和一組空間索引 X 所組成( , )
o x X
(2.8)16
17
18
19
20
21
22
23
素本身特性、重音所在、或是前後文相關位置等變因,將上述的各項變因列入考慮而嘗 試建構各特徵參數模型,目的就是希望在合成語音時,能藉由已經訓練好的模型,準確 的預估特徵參數,使得合成語音聽起來自然流暢。因此,考慮到現實上訓練語料數量上 的限制,當變因的組合太多時,符合其中某種組合條件的樣本數會太少,甚至沒有符合 的樣本,導致模型的參數無預估的準確或根本無法預估。
決策樹是一種二元樹,每一節點都是一個決策點,給定一個條件,把資料群根據符 合條件與否分為兩類,從決策樹根部開始,每個節點都有一個相關於文本內容的問題,
每一個樣本根據標記文本上符合問題條件與否,持續分類直到子葉。
最後被分到同一子葉的樣本群,經由上述的篩選,在文本內容上必定十分相似,因 此,同一子葉的樣本群訓練成一個模型,好處是在合成語音時遇到訓練語料中沒有出現 過的文本組合,也可以藉由決策樹分類找出最相近的模型套用。由於影響各特徵參數的 文本相關因子不同,所以分別會為它們各自建決策樹,如圖 2. 8
圖 2. 8 決策樹[17]
24
傳統決策樹停止分裂的規則為,為防止葉節點內的資料太少,預先設定「最小音框 佔有期」臨界點(minimum frame occupancy threshold)和為防止過度訓練而設的「最小相 似度增加值」臨界點,因為過大的樹將過份專化(overspecialized)訓練語料,使得一般化 的表現不好。另一方面過小的樹將使的最後建立的模型因參數過少不夠精準。而適當的 臨界點需要用嘗試錯誤法去慢慢找出來。因此改用下小節介紹的自動停止規則。
2.7.2 最小描述原理
最小描述原理(MDL Minimum Description Length)原理[19 ]在這被使用當作決策樹 停止分裂的原則,已被證明是一個有效的選擇最佳機率模型方法。根據 MDL 原理,對 於資料 xN
= x
1,… , x
N,是從 I 個模型中 i = 1, …, I 的其中一個建立的,要找出最佳模型,則擁有最小描述長度 l 的模型被選為最佳模型,對於模型i 描述長度 l(i)的定義為
( ) log
ˆ( )( ) log log 2
N i
l i P
ix N I
(2.36)其中
α
i是模型i
中,自由參數的個數,ˆ ( )i 是模型i
中使用最大相似度演算法估計 的參數,第一項是相似度的負值、第二項表示模型的複雜度、第三項只是模型總個數。當一個模型變得更複雜,即可用的自由參數變更多時,相似度上升,第一項的值會減少、
第二項的值會增加、第三項只是個常數。模型在一個適當的複雜度時,會出現最小描述 長度如圖 2.7。而且,在(2.36)中會發現,MDL 原理不需要任何外部設定的參數,屬於 某資料庫的最佳模型會自動從一組模型中被選出。
25
26
27
第三章 英文語音合成系統實作
3.1 系統環境、語言及程序工具簡介
本英文語音合成系統建構在 Fedora 12 作業系統下,整個語音合成系統的主要部分,
是使用日本名古屋大學資工研究所開發的 HTS 2.1。HTS 2.1[8]是基於 HTK 3.4[22]的修 改版本。HTK 是由英國劍橋大學電機系開發出來的隱藏式馬可夫模型開發工具,提供 了非常多的指令,方便使用者實作隱藏式馬可夫模型的建立,主要是作為語音辨認之用;
HTS 保留了大部分 HTK 的指令,只針對語音合成上的一些需要做更動。整個合成系統 的架構以及使用的工具語言如圖 3.1:
圖 3. 1 基於隱藏式馬可夫模型英文語音合成系統
28
目前的 HTS 版本中都不包含文句分析功能,因此自己用 Python 語言寫了一個簡單的文 句分析器;另外語料檔所唸的內文,也經由 Python 語言撰寫程式,轉寫成 HTS 可接受 的格式;抽取基頻參數部分,使用 SPTK(Speech signal process toolkit)[23]工具;抽取基 頻參數部分,使用 Tcl 語言引入 Snack Library 來計算,而最後合成部分,使用合成軟體 HTS_engine[24]合成輸出語音。
3.2 語料的前處理
第一步:將訓練語料各音檔標記音素的切割位置
從[25 ]下載國外研究者已建好的三連音模型。模型的訓練語料如下 Train data : WSJ all + TIMIT
Tied states (approx) : 10000 Gaussians : 32
Silence gaussians : 64
使用下載後的 acoustic model 對自己的語料庫做 forced-alignment 找初始切割位置,此步 驟完成後,即可得到 phone level 的 feature。
第二步:將訓練語料標記音節邊界
由於之前做 force-alignment 時所用的字典是 cmu 0.7a,以 import 這個 word 為例 IMPORT IH0 M P AO1 R T
IMPORT IH1 M P AO0 R T
只有兩欄,第一欄是 word,第二欄是此 word 的發音,每個母音後面都有一個數字,代 表此母音是否是重音,1 表重音,2 表次重音,0 表沒有。此字典的優點是詞彙量多(約 13 萬),各種字的發音齊全,很適合用在語音辨識,一個具有 multi-pronunciation 的詞大
29
部分發音都有收錄。缺點是它雖然也有一詞多音的支援,可是沒有提供詞性,無法得知 在什麼詞性下該發什麼音,也不提供音節邊界的標記。使得它不適合作為語音合成之用,
但它卻很適合拿來作為 force-alignment 的字典。
有了 force alignment 的結果,就有各個 phone 的時間切割資訊,接著為了得到 cmu 0.7a 所不提供的音節邊界標記,於是使用 festival[9]這套軟體裡所用的 cmu 0.4 字典(檔名為 cmu.out)格式說明如下,可得 word 的 syllable boundary 資訊。字典的內容如下:
1 2 3
利用 Stanford POS Tagger, v. 3.0[26]可將文本標記所屬的 POS。輸出格式如下:
They_PRP breathe_VBP through_IN lungs_NNS ,_, not_RB through_IN gills_NNS ,_, and_CC give_VB
They_PRP breathe_VBP through_IN lungs_NNS ,_, not_RB through_IN gills_NNS ,_, and_CC give_VB