第二章 文獻回顧
2.2 基於隱藏式馬可夫模型之語音合成
2.2.3 隱藏式馬可夫模型於語音參數之建模
2.2.3.3 文脈關聯模型
近年來,文脈關聯模型較單音模型(Mono-phone Models)在自然語音辨識當 中取得了相當成功的成果[72–74]。由於自動語音辨識與統計式語音合成所使用 的隱藏式馬可夫模型一致,因此文脈關聯模型也運用於語音合成當中。
一般在自動語音辨識當中,我們常用三音素模型(Tri-phone Models)來進行 聲學模型的訓練與辨識;但在語音合成當中,三音素模型對於語音的文字描述 仍過於簡略,因此我們便會引入更多文脈(Context)用於描述特定語句音素的韻 律。但不論是以三個音素串聯在一起的文脈關聯模型,或是以眾多文脈組合而
35
成的文脈關聯模型,其模型數量遠較單音模型還要來得許多,因此語音資料庫 不見得能夠提供單一文脈關聯模型足夠的訓練資料,也無法涵蓋到所有可能的 文 脈 關 聯模 型, 此 一缺 點 使 得文 脈關 聯 模型 的 訓 練會 產生 資 料稀 疏 (Data
Sparseness)的問題。在過去,許多學者使用了決策樹分群法來解決訓練文脈關聯 模型會遇到的資料稀疏問題[75–77]。
在基於隱藏式馬可夫模型之語音合成當中,我們使用最小描述長度準則
(Minimum Description Length Criterion, MDL Criterion)[78]來做為決策樹分群法 挑選模型的方法[79–81]。
最小描述長度準則:
顧名思義,最小描述長度準則即是從機率模型群當中挑選具有最小描述長 度的模型作為最佳模型來代表已知的資料,此一準則也已被證明在挑選最佳模 型的方法上是十分具有效率的。
為了以數學式定義描述長度,我們假設有一機率模型集合{1, ⋯ , 𝑖, ⋯ , 𝐼},其 中 i 為代表資料𝑥𝑁 = {𝑥1, ⋯ , 𝑥𝑁}之機率模型,此機率模型 i 的描述長度𝑙(𝑖)定義 如式(54):
𝑙(𝑖) = − log 𝑃𝜃̂(𝑖)(𝑥𝑁) +𝛼𝑖
2 log 𝑁 + log 𝐼 (56) 其中,𝛼𝑖為機率模型 i 的調整參數,而𝜃̂(𝑖)為機率模型 i 的參數𝜃(𝑖)= (𝜃1(𝑖), ⋯ , 𝜃𝛼(𝑖)𝑖 ) 所估計出來的最大機率值(Maximum Likelihood);又式(54)當中的第一項為資料 的負對數機率(Negative Log Likelihood),第二項為模型的複雜度,第三項為選擇
36
模型 i 所需的描述長度,在此處為一常數。
在描述長度準則當中,當一模型越趨複雜,其第一項之機率值越小,而第二 項的複雜度則隨之提高;當該模型達到適當的複雜度,其描述長度 l 便會是最小 值。此外,從式(56)當中,我們可以發現最小描述長度準則無需外部參數來進行 調整,因此用於代表資料的最佳模型會在決定機率模型集合的時候自動產生。
決策樹分群法
在基於隱藏式馬可夫模型之自動語音辨識與語音合成,我們將決策樹分群 法運用在狀態的模型分群上,如圖(九):
圖(九):狀態分群之決策樹
以三音素模型(Tri-phone)為例,每顆決策樹的根節點(root node)皆為對應至 某一單音模型之狀態的三音素模型集合,而其餘的節點則為此一根節點之子集 合。從上層到底部,每一個節點皆可以使用一個問題來將該節點分群成兩個節 點,以圖(九)為例,根節點的問題為「右側文脈是否為靜音標記」,此問題將模
37
型區分成兩個子集合;其中,每一個節點的問題皆是從事先準備好的問題集當 中挑選其中一個來進行分群。
由於分群的效果受到每個節點所挑選的問題及停止分群的時機所影響,因 此正確的挑選分群問題以及停止分群的時機便顯得相當重要。在過去有學者提 出 使 用 最 大 機 率 化 的 方 式 來 進 行 問 題 的 選 取 以 及 停 止 分 群 的 門 檻 值
(Threshold)[77];而在此論文中,最小描述長度準則則被運用來解決上述的兩個 問題。
以下我們將探討使用最小描述長度準則之決策樹分群法。
使用最小描述長度準則之決策樹分群法:
要使用最小描述長度準則來挑選每個節點的最佳問題,我們必須要先定義 隱藏式馬可夫模型的描述長度。
假設某一狀態𝑆0的音素隱藏式馬可夫模型可以分群成 M 個節點𝑆1, 𝑆2, ⋯ , 𝑆𝑀, 其中我們使用一模型 U 來表示𝑆0所分群的節點集合,如圖(十)所示:
圖(十):決策樹當中的節點集合
其中,L 為節點𝑆𝑚之對數機率,該值可從產生訓練音框𝑜1, 𝑜2, ⋯ , 𝑜𝑇來獲得,如
38
39
為了要得到最佳的模型𝑈′,我們必須要計算所有模型之描述長度來得到最 佳解,但是此一作法會帶來龐大的計算量,因此我們採用一個會獲得次佳解但 較少計算量的演算法。
現在我們令Δ𝑞(𝑆)為節點 S 使用問題 q 分群前後之描述長度的差異,即為式
(62):
Δ𝑞(𝑆) =1
2(Φ(𝑆𝑞𝑌) log|Σ𝑞𝑌| + Φ(𝑆𝑞𝑁) log|Σ𝑞𝑁|
−Φ(𝑆) log|Σ𝑆|) + 𝑐𝐾 log 𝑉
(62)
其中𝑆𝑞𝑌, 𝑆𝑞𝑁分別代表分群後的節點。
我們利用求取Δ𝑞(𝑆)的最小值來進行該節點的分群,因此模型選取演算法如 下列步驟:
1. 將一狀態下全部的隱藏式馬可夫模型作為起始根節點𝑆0之模型集合。
2. 對於問題集合𝑄 = {𝑞1, ⋯ , 𝑞𝑖, ⋯ , 𝑞𝐼}當中所有的問題𝑞𝑖求取其Δ𝑞𝑖(𝑆0)。
3. 選取產生最小的Δ𝑞𝑖(𝑆0)之問題𝑞𝑖作為此一節點分群的決策問題。
4. 若Δ𝑞𝑖(𝑆0) > 0,則停止分群。
5. 若Δ𝑞𝑖(𝑆0) < 0,則將根節點𝑆0分群成𝑆𝑞𝑖,𝑌與𝑆𝑞𝑖,𝑁,並將問題𝑞𝑖從問題集 合 Q 當中剔除。
6. 分別將根節點𝑆0分別替換成分群後所產生的節點𝑆𝑞𝑖,𝑌與𝑆𝑞𝑖,𝑁,回到步驟 2.重新執行。
利用上述的演算法,我們便可以對文脈關聯模型群以其狀態為單位進行分
40
群,避免文脈關聯模型所產生的資料稀疏問題。