• 沒有找到結果。

結論與未來展望

在文檔中 中文單詞之韻律模式研究 (頁 14-68)

第二章 大量詞語料庫介紹

為了訓練模型方便,我們事先求取出語料庫中許多不同的語音特性,諸如音 節位置、音高、能量、音節長度之類的參數,本章即是探討如何求取這些資訊。

2.1 適用於訓練模型之大量詞語料庫條件

一個語料庫是否適用於訓練模型,癥結在於其是否擁有各種不同的合成單 元。就中文而言,每個中文字對應一個音節(syllable),音節有五種聲調(tone)的 變化,中文字約有 12000 多字(character),但如果只以發音來區分,總共大約只 有 1300 種音節,如果再去除聲調的差別,則只有 411 種基本音節(base-syllable)。

一般認為,適合用於訓練模型的語料庫應具有『豐富語音』(phonetically rich) 與『豐富韻律』(prosodically rich)兩個特性。所謂『豐富語音』是指具有各式各 樣的音節連接方式;而『豐富韻律』則是指語料庫具有多種不同的韻律變化。

2.2 語料庫資料來源及錄製音檔

目前語料庫的文字部份來自於『文句分析器的辭典』,選擇的條件以聲調(tone) 平衡為主要目的,總共有 4321 篇短文,在接下來的小節中,將介紹文字內容之 萃取、統計及錄製音檔的規格。

2.2.1 文字內容之萃取及統計

首先我們由詞典抽取詞,格式如下:

將其處理,標記聲碼及詞類 (part of speech, POS),聲碼與實際發音之對照關係 公司 今年 因此 單位 他們

請參照附錄一,『國語 411 基本音節總音表』,產生的文件格式如下,其中第一行 為原始文字、第二行為音碼,第三行為詞序的編碼,第四行為詞類:

整個語料庫共包含 107936 個詞,共有 277218 個字,詳細的詞長及聲調(tone) 分佈如下:

表 2.2.1-1:語料庫詞長分佈表 詞長 數量

二字詞 64872 三字詞 26026 四字詞 16062 五字詞 797 六字詞 124 七字詞 49 八字詞 6

表 2.2.1-2:語料庫聲調分佈表 聲調 數量

一聲 62349 二聲 69278 三聲 48904 四聲 94786 五聲 1901 公 1380 201 12 司 1007 202 12 今 1270 201 16 年 2264 202 16 因 1269 201 40 此 3006 202 40 單 1125 201 14 位 4324 202 14 他 1019 201 37 們 5147 202 37

詞長分佈圖

0 20000 40000 60000 80000

1 2 3 4 5 6 7 8

詞長(單位:字)

個數

圖 2.2.1-1:語料庫詞長分佈圖

2.2.2 錄製音檔

產生如上所提的文字檔後,接下來要錄製音檔,我們將每個文字檔錄製成一 個音檔,共計有 4321 個音檔,請專業的女性廣播人員以流利的方式唸出錄製語 音。錄音軟硬體設備及格式詳如下表:

錄音軟體 Cool Edit Pro 直接錄成聲音檔案

麥克風 單一指向性

錄音場所 普通房間

錄音情境 依照所選出文稿唸出

取樣頻率 20 kHz

發音速度 每秒約 3.5 個音節 取樣大小 16 bits (位元) 聲道 單聲道 (mono) 檔案格式 Pcm

表 2.2.2-1 錄音軟硬體及格式表

2.3 語音參數資料庫建置

在建立了語料庫之文字資料庫與音檔後,為了之後訓練各種模型之用,我們 需要更多的語音特性以供訓練各種模型之用,在此小節中,將介紹我們是如何由

原始的文字檔與音檔求取出各類語音特性參數。

2.3.1 切割資訊的求取

實際用於訓練模型的語料庫,需要更多的資訊,如標示每處音節所在位置的 切割資訊,此節即是要說明如何產生此一訊息。

我們所使用的軟體為 HTK(Hidden Markov Model Toolkit),而我們所採用的 訓練模型方法在 HTK 說明手冊[2]中稱為 Isolated Word Style Training。此訓練使 用參數的設定簡述如下:

關 於 參 數 的 設 定 為 : 38 維 的 參 數 , 包 含 12 階 的 梅 爾 倒 頻 譜 參 數 (Mel-frequency cepstral coefficients, MFCCs) 與能量對數值(log energy),及其一階 微分與二階微分,扣除原本的能量對數值後共 38 維;其音框大小(frame size)設為 32 ms;音框位移(frame rate)設為 10 ms。

其中有 406 個音檔由人工校正,剩餘的音檔利用過零率及能量,來修正切割 資訊,使得切割資訊更加合理。

2.3.2 求取語料庫的能量資訊

在之後的訓練模型中,我們需要語料庫中更多的語音特性。在這一節中,說 明能量大小的求取方法。首先,我們依照切割資訊將每段音節的波形取出,在此 波形中,依照下式將每一個音框的能量求出。

2

1

( ) 2 log ( ; )

N

x n x

n

E m w f n m

=

=

× (2.1)

m

:frame index

N

:total number of samples in a frame

w :The n-th value of the Hamming window n

( ; )

f n m :The magnitude of the n-th sample in the m-th frame x

2.3.3 求取語料庫的音高(pitch)軌跡資訊

在語音的特性參數中,韻律訊息扮演了重要的角色,其中音高 (pitch) 的變 化是我們所關注的一項議題,此節說明此資訊的求取方式。首先,我們利用 WaveSurfer[3]軟體所提供的 ESPS 演算法,求出每段音檔的音高軌跡,下圖為某 個音檔的音高軌跡。

圖 2.3.3-1:利用 WaveSurfer 軟體求取音高的例子

我們將此音高軌跡藉由 WaveSurfer 軟體提供的功能存成文字檔。然而此資 料是以音框為單位,每個音框有一個音高數據。為了將此資料轉變為每段音節一 組數據,我們藉由前人所提出的轉換式[4],將一段連續的音高軌跡轉化為四個 正交參數表示,其數學式如下:

0

1 ( ) for 0, , 3

1

N

j j

i

a Pitch i i j

N = N

⎛ ⎞

= + ∑ ⋅ Φ ⎜ ⎝ ⎟ ⎠ =

(2.2) 其中,

Pitch ( ) i

為原始基頻軌跡,

0 ≤ iN

,N+1為基頻軌跡的長度。而

j i

N

Φ ⎜ ⎟⎛ ⎞⎝ ⎠為

正交化函數,定義如下:

0

⎟ = 1

⎜ ⎞

⎝ Φ ⎛

N

i

(2.3)

( )

2.3.4 求取語料庫的音節長度(duration)資訊

在語音的特性參數中,音節長度關係到整個詞的流暢度,此節說明此資訊的 求取方式。我們依照切割資訊,將每段音節的長度取得。如圖 2.3.4-1 所示:

圖 2.3.4-1:由切割資訊獲得音節長度資訊

2.3.5 求取語料庫中的連音狀態(coarticulation state)資訊

所謂的連音狀態是指某個詞的兩個音節間相互影響的程度,直覺上連音狀態 和前後音節互相影響有關,所以我們將連音狀態資訊也納入考慮。假設影響連音 狀態的因素有二個(如下圖所示),一為此音節的基頻軌跡與下一個音節的基頻軌 跡間的長度(pitch pause),若長度為零,則明顯看出音節間的影響最大;另一為 音節與音節間最低點的能量 (energy-deep level)。

圖 2.3.5-1:影響連音狀態的因素示意圖

如何由音節間能量的最低點來作為判斷連音狀態的依據,我們由語料庫中統計出 音節間能量最低點的分佈圖,如圖 2.3.5-2,很明顯可分成三群,若將 pitch pause 為零的族群去除後,剩下的可分成二群,其中 pitch pause 為零的族群分佈如圖 2.3.5-3,去除 pitch pause 為零的族群後分佈,如圖 2.3.5-4,由圖可知,能量值為 35dB 可做為連音狀態的分界點。

-10 0 10 20 30 40 50 60 0

200 400 600 800 1000 1200

dB

數量

All energy-deep

圖 2.3.5-2:語料庫上所有 energy-deep level 之分佈

-10 0 10 20 30 40 50 60

0 200 400 600 800 1000 1200

dB

數量

State1 energy-deep

圖 2.3.5-3:將 pitch pause = 0 取出之 energy-deep level 分佈

-10 0 10 20 30 40 50 60 0

200 400 600 800 1000 1200

dB

數量

Other energy-deep

圖 2.3.5-4:pitch pause = 0 以外之 energy-deep level 分佈

為了使往後的分析較簡易,我們將上面所討論連音狀態的影響因素,做簡易 的分類,目前將連音狀態分成三類,如圖 2.3.5-5:

圖 2.3.5-5:連音狀態分類圖

2.3.6 音節聲母及韻母分類資訊

在我們的國語共有 411 個音節與 22 個聲母、39 個韻母,由觀察可得知某些 聲母及韻母可分類成一類,依照我們分類,聲母分 6 類,韻母分 17 類,可增加 分析上的便利性及運算上簡易。如下表 2.3.6-1 及表 2.3.6-2。在第四章 duration 模型及第五章能量模型皆參考下列分類,做為模型的韻母及聲母分類參考。

表 2.3.6-1:聲母分類表

類別 聲母

1 ㄇ、ㄋ、ㄌ、ㄖ、空聲母 (鼻音_濁音) 2 ㄏ、ㄒ、ㄕ、ㄈ、ㄙ (摩擦音_清音) 3 ㄅ、ㄉ、ㄍ (爆破音_不送氣) 4 ㄐ、ㄓ、ㄗ (塞擦音_不送氣) 5 ㄆ、ㄊ、ㄎ (爆破音_送氣) 6 ㄑ、ㄔ、ㄘ (塞擦音_送氣)

表 2.3.6-2:韻母分類表

類別 韻母 類別 韻母

1 空韻母 10 ㄢ、ㄧㄢ、ㄨㄢ、ㄩㄢ

2 ㄚ、ㄧㄚ、ㄨㄚ 11 ㄣ、ㄧㄣ、ㄨㄣ、ㄩㄣ

3 ㄛ、ㄧㄛ、ㄨㄛ 12 ㄤ、ㄧㄤ、ㄨㄤ

4 ㄜ 13 ㄥ、ㄧㄥ、ㄨㄥ、ㄩㄥ

5 ㄝ、ㄧㄝ、ㄩㄝ 14 ㄧ

6 ㄞ、一ㄞ、ㄨㄞ 15 ㄨ

7 ㄟ、ㄨㄟ 16 ㄩ

8 ㄠ、ㄧㄠ 17 ㄦ

9 ㄡ、ㄧㄡ

第三章 Pitch 模型

訓練 pitch 模型是為了在給予特定的資訊後,使之能預測音節基頻軌跡,能 做為韻律訊息,方便未來 TTS 系統所使用,並希望更了解音節基頻軌跡被那些 因素的影響程度較多。本章即是探討如何訓練 pitch 模型,及分析各種影響因素 對音節基頻軌跡的影響程度。

3.1 設計 pitch 模型的方法

本論文所要設計的 pitch 模型主要有三個影響因素,分別為:聲調(tone)、

音節在詞的位置(word position)、音節間的連音狀態(inter-syllable coarticulation state)。我們假設所有的影響因素可用累加的方式來表示,如下式:

1

,

1

,

n n n n n n

r f b p

n = n + t + w + c

tp

+ c tp +

sp sp β β β β µ

(3.1)

其中各項向量變數定義如下,其向量為一段連續的音高軌跡轉化為四個正交參數 表示,轉換方法詳述於[4]。

sp :第 n 個音節的音高軌跡參數向量。

n r

sp :第 n 個音節的殘餘(residual)/正規化(normalized)音高軌跡參數向量。

n

t

n

β :第 n 個音節的聲調影響音素,

t n ∈ { 1, 2, 3, 4, 5 }

w

n

β :第 n 個音節的在詞的位置影響音素,

w n

{ ( )( )( ) ( )

2,1 2, 2 3,1…, 8,8

}

c :在第 n 個音節與第 n+1 個音節間的連音狀態, n c n ∈ { 1, 2, 3 }

tp :在第 n 個音節與第 n+1 個音節間的聲調配對(tone pair)。 n

n

,

n

b

β c tp

:給定的連音狀態及 tone pair 時,第 n 個音節受第 n+1 個音節的影響因素。

1

,

1

利用最大概似法則(Maximum likelihood criterion)推導出各個影響因素之式子,整 理如下:

( ) ( )

( ) ( )

的影響因素初始值,最後音節在詞的位置影響因素(word position)初始值設定可 直接用(3.4)式。

3.2.3 訓練流程

訓練模型時,初始化後利用(3.3)式到(3.7)式,依序將聲調、音節在詞的位置、

受前後音節等影響因素及 covariance matrix 的參數值更新,然後使用更新後的參 數值,算出整個語料庫的最大概似法則分數,一直重覆更新參數值及分數,直到 分數的變化量小於10

7

。訓練流程圖如圖 3.2.3-1:

β t

β w

,

f

β c tp

, b

β c tp

R p

圖 3.2.3-1:訓練流程圖

3.3 訓練結果與分析

訓練模型後,使用 pitch 模型去預測基頻軌跡,我們進一步討論各個影響因 素對於聲調的影響及貢獻。

3.3.1 利用 pitch 模型預測基頻軌跡

Pitch 模型預測基頻軌跡結果如下圖所示,其中黑色線(實線)為原始音節的基 頻軌跡,紅色線(點線)為 pitch 模型所預測該音節的基頻軌跡,由圖可知大致的 基頻軌跡走勢相似。

圖 3.3.1-1:Pitch 模型預測基頻軌跡

3.3.2 聲調影響因素(tone affecting factor)

聲調影響因素對音節的聲調由下圖所示,由圖觀察得,聲調影響因素的基頻 軌跡較相似於國語聲調,所以音節聲調主要受聲調影響因素的影響。

圖 3.3.2-1:聲調影響因素基頻軌跡

3.3.3 音節在詞的位置影響因素(word position affecting factor)

音節在詞的位置影響因素對音節的基頻軌跡影響如下列圖所示,分別有二字 詞至五字詞位置影響因素對音節的基頻軌跡影響及將詞首與詞末的基頻軌跡整 合比較,由圖 3.3.3-1 至圖 3.3.3-4 可觀察得詞的位置會直接影響基頻軌跡的平均 基頻高度,愈接近詞首愈高,愈接近詞末愈低,且詞首的後半部音節軌跡會有上

0 5 10 15 20 25

-0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3

Pitch length(frame)

log(H Z)

tone one tone two tone three tone four tone five

(10ms)

仰趨勢,是為了接下個音節基頻軌跡而準備,也可由圖 3.3.3-5 所知,詞的字數

Pitch length(frame)

lo g (H Z )

Pitch length(frame)

lo g (H Z )

Pitch length(frame)

lo g (H Z )

Pitch length(frame)

lo g (H Z )

Pitch length(frame)

lo g (H Z )

Pitch length(frame)

lo g (H Z )

3.3.4 受前面音節影響因素(forward affecting factor)

為方便觀察受前音節影響的基頻軌跡,單純假設圖 3.3.4-1 的基頻軌跡音節 為二字詞字末音節,僅受前音節的影響,可以看出五個聲調受前音節各個聲調在 各個連音狀態的影響程度。由圖 3.3.4-1 觀察得 state1 基頻軌跡前半部受前音節 影響改變量較大,且 state2 與 state3 較不受影響,與軌跡相似。

100 200 300 j = 1

100 200 2 300

100 200 300 3

100 200 300 4

5 10 15 20 25 100

200 300

i = 1 5

5 10 15 20 25 2

5 10 15 20 25 3

5 10 15 20 25 4

5 10 15 20 25 5 (Hz)

frame(10ms)

圖 3.3.4-1:聲調受前面音節影響基頻軌跡變化圖,其中實線為 不加前後影響因素、點線(…)為 state1、點虛線(--‧)為 state2

、虛線(--)為 state3,其 j 為音節的聲調受前音節聲調 i 的影響

3.3.5 受後面音節影響因素(backward affecting factor)

為方便觀察受前音節影響的基頻軌跡,單純假設圖 3.3.5-1 的基頻軌跡音節 為二字詞字首音節,僅受後音節的影響。可以看出五個聲調受後音節各個聲調在 各個連音狀態的影響程度。由圖 3.3.5-1 觀察得 state1 基頻軌跡後半部由後面音 節影響改變較大,且比較圖 3.3.4-1 可明確了解受前面音節的影響大於受後面音 節的影響。

200 300 j = 1

200 300 2

200 300 3

200 300 4

5 10 15 20 25 200

300

i = 1 5

5 10 15 20 25 2

5 10 15 20 25 3

15 20 25

4

5 10 15 20 25 5 (Hz)

frame(10ms)

圖 3.3.5-1:聲調受後音節影響基頻軌跡變化圖,其中實線為 不加前後影響因素、點線(…)為 state1、點虛線(--‧)為 state2

、虛線(--)為 state3,其 j 為音節的聲調受後音節聲調 i 的影響

、虛線(--)為 state3,其 j 為音節的聲調受後音節聲調 i 的影響

在文檔中 中文單詞之韻律模式研究 (頁 14-68)

相關文件