• 沒有找到結果。

表 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 PN 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

i

xN 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

相關文件