第三章 老人語音資料庫
3.2 訓練語料與測試語料
因為老人語音中,語者間的語音特性與一般年齡層辨識系統相比,其差異較 大,這是由於現在台灣的老人家們有著不同的腔調所造成,例如;台灣國語、一 般的國語腔調以及外省腔調的國語(其分布詳見附錄一),在接下來的章節會對腔 調的差異來做分析。由於我們將建立老人語音的聲學模型(acoustic model)來進行 語音辨識,我們把老人語料庫中的語者抽取八句長句子來作為測試語料,剩下的 其他句子拿來當作HMM模型的訓練語料,採取Multi-speaker的語音辨識,是為了 因應語料不足時,若採用語者來分訓練及測試語料,會造成辨識結果較缺乏客觀 性,並且使用這種speaker dependent的語料分法,能針對語者腔調的差異來進行 實驗。下表為訓練語料與測試語料具有的音節數、句數和filler出現的音節數。
表 3.2 訓練語料中的音節數、句數、filler 的統計 音節數
(Syllable)
句數 Filler 出現的音節數 女性語者 8841 1270 29 男性語者 16145 2199 33 全部語者 24986 3469 62
表 3.3 測試語料中的音節數、句數、filler 的統計 音節數
(Syllable)
句數 Filler 出現的音節數
女性語者 1901 152 13
男性語者 3619 280 7
全部語者 5520 432 20
3.3 調適語料與被調適的 調適語料與被調適的 調適語料與被調適的 調適語料與被調適的 HMM 模型 模型 模型 模型
由於老人語音資料的收集有一定難度,所以在論文中老人語音辨識模型將無 法如同其他語音辨識模型那麼地強健,也就是說HMM模型可能會因資料量不 足,而無法有效地去描述某些音節的特徵。在此我們便採用第五章即將介紹的 MLLR來調適語音辨識系統,將使用TCC-300所訓練出來的語音模型作為即將被 調適的HMM模型,其詳細的各項設定如附錄二所示。並且取用老人語音辨識系 統中的訓練語料來當作調適語料,測試語料仍維持老人語音辨識系統的測試語 料 , 而 調 適 時 的 訓 練 與 測 試 語 料 都 將 配 合 TCC-300 的 acoustic model , 把 transcription中的filler音節給刪除掉,因為我們使用的TCC-300 acoustic model具有 一個描述silence、short pause以及與呼吸聲相關的聲學模型,而filler與這模型相當 符合,只要確定具有filler的語句其切割位置是正確的。下圖為調適過程的結構
[8]:
圖 3.3 基本調適過程的結構圖 Speech
Recognition HMM
Speaker Dependent
HMM
Adaptation Data
Speaker Adaptation
根據上圖所示,我們使用 MLLR 的語者調適過程將已訓練好的 TCC-300 之 HMM 模型,透過老人調適語料的特性將 TCC-300 之 HMM 模型轉換成符合老人語 者的語者相關 HMM 模型,詳細調適內容將於第五章仔細介紹。
3.4 老人語料的特性與問題歸納 老人語料的特性與問題歸納 老人語料的特性與問題歸納 老人語料的特性與問題歸納
經由第二章與本章的整理之後,將預先把老人語料會在將來實行辨識及調適時 需要注意的一些語音特性及錄音引起的問題作個歸納,並以此考量這些歸納後的事 項需要由何種方法來解決或降低其影響,以下為我們所歸納的事項及對策:
1.由於錄音環境的差異(室內與室外)造成了錄音品質良、劣差異極大,也產生了 各種的雜訊,這些錄音引起的問題與老人的語音特性毫無關係,所以我們採取的對 策便是在建立老人語音辨識器與調適老人語料前,先剔除這些語句,甚至是語者。
2.因為錄音時,老人語者未必會唸出完全對應於transcription的發音,所以預先 聽過所有語者的音檔,並確認其transcription是否與發音一致,若出現不一致的現 象,便更正transcription為相對應的漢語拼音。
3.少數的語言學現象,例如:咳嗽聲、發語詞或是一些無法由漢語拼音構成的 音節,都將採用filler model來替代之,不過被調適的TCC-300聲學模型,並不具有filler 的音節,但具有一個包含silence、short pause以及與呼吸聲相關的聲學模型,所以在 調適時把transcription中的filler給予剔除,並確定具有filler的語句中其切割位置是正 確的,讓filler存在的音節使用這個與呼吸聲相關的模型所調適,如此一來便能使用 調適去把TCC-300 HMM model轉換至較符合老人語料的新HMM model,所以僅有 在建立老人語音辨識系統時採用filler model。
4.聲門與聲道因年齡的增長所產生的變化,總的來講,就是聲音會變低沉,不 過Second Formant、Third Formant…等共振峰與年齡的相關性,並沒有相關的研究確 實指出其合理的改變行為,所以我們於調適老人語料時,將採用VTLN來warping老 人語音的頻率,並視每一位老人語者的頻率變化為線性的變化(詳見第五章內容)。
5.依腔調(一般腔調國語、台灣國語腔調與外省腔調國語)來劃分老人語者,並比 較腔調的差異對於辨識與調適兩種方法的影響。
第四章 第四章
(3)Dictionary:此檔案記錄了聲學模型與基本音節的對應關係。在辨識時可經由查詢 此檔案的動作,來將辨識後的聲學模型符號,轉成基本音節的拼音符 號。
(4)Recognition network:作為辨識時所依據的搜尋網路,先前的辨識網路並無加任 何限制。
接著,將簡述各方塊之系統參數。
4.1.1 系統環境參數設定 系統環境參數設定 系統環境參數設定 系統環境參數設定
1.HTK特徵向量求取原理說明
我們首先做一個假設-聲音訊號在幾毫秒內是stationary。然後,再將聲音訊號 做一連串的處理,處理順序如下[11]:
將聲音訊號切成若干的區塊,而每個區塊大小32ms間隔10 ms,相互重疊。
對聲音訊號做預強調的動作(即高頻放大),用來補償從口腔所引起的發散衰 減現象。然後,再對每塊區塊取Hamming Windows作smoothing動作。
接下來就是MFCCs(Mel-Frequency Cepstral Coefficients)參數求取流程,如圖 4.2所示。
為了要做模型比對,所以我們就必需將語音訊號轉換為一串的聲學向量,而向 量的計算方式就是每10ms做一次平滑式對數頻譜。為了要改善模型比對的效能,所 以 , 我 們 在 頻 譜 上 多 加 了 梅 爾 頻 率 量 度 (Mel-frequency Scale) , 接 著 再 加 上 DCT(Discrete Cosine Transform)。加上DCT用途就是將訊號作de-correlation動作,因 此,可以對先前假設訊號是統計獨立的關係,有所改善。最後,再對參數(MFCC) 做一、二次微分後,加到聲學向量以增加聲音訊號的動態資訊。以下是計算微分的 公式:
1 : the first differential coefficient : the second differential coefficient : MFCC coefficient
12 MFCCs
12 MFCCs之一階微分項(微分間距:2音框)
12 MFCCs之二階微分項(微分間距:2音框)
能量之一階微分項(微分間距:2音框)
能量之二階微分項(微分間距:2音框)
倒頻譜平均值消去法(Cepstrum Mean Subtraction,CMS)
因此,針對語音訊號進行參數求取之後,得到 38 維的語音參數向量,而在第五 章使用的 VTLN 即是於此處對老人語者語音做頻率彎曲的動作。
4.1.2 聲學模型及其訓練與測試 聲學模型及其訓練與測試 聲學模型及其訓練與測試 聲學模型及其訓練與測試
於此我們採用的是 left-to-right HMM,雖然口腔聲道會隨時間而變,但因為語 音訊號具備短時間的穩定特性,因此假設在同一音框(Frame)中,口腔狀態是相同 的 。 此 外 , 代 表 音 框 與 各 狀 態 的 相 似 程 度 的 狀 態 觀 測 機 率 (State Observation Probability),使用混合高斯模型(Mixture Gaussian Model)來表示[12]。
另外,訓練模型時重估模型參數則利用 Baum-Welch 重估演算法,並重複估測 聲學模型至穩定為止;至於辨識工作的進行則是使用 Viterbi 演算,將輸入的訓練語 音針對一個模型計算其由該模型產生的機率,並找出最佳狀態序列[13]。
並在訓練模型時使用 HTK v3.4 中的 proportional state 的做法,去達到訓練聲學 模型時能夠去對照其統計資料,產生出較適合我們老人語料資料量較少的模型,並 重複訓練聲學模型七次,使得聲學模型能達到穩定,而在辨識時求出 optimal penalty,使得辨識率是最佳的。
4.2 建立多語者 建立多語者 建立多語者 建立多語者(multi-speaker)聲學模型與實驗 聲學模型與實驗 聲學模型與實驗 聲學模型與實驗
在本論文中,將建立一個 multi-speaker 的老人語音 HMM 模型,而 HMM 初始 模型將採用 flat start 的方式來建立,這種方法首先假設一段語音中的切割位置平均 分 布 , 並 先 用 訓 練 語 料 訓 練 出 一 個 初 始 的 模 型 , 將 它 提 供 給 所 有 的 次 音 節
(Sub-syllable,在此即為中文的聲母(initial)和韻母(final))使用,雖然此種作法在一段 語音較長的情況下容易發生切割位置錯誤的情形,並且需要花較多的時間訓練出一 個正確的模型,但在先前所提到的老人語音資料庫,因過長的句子都修改為十個多 音節或以下,且整個資料庫字數約三萬多個音節,所以使用 flat start 仍是合理的選 擇。
而我們採用的辨識網路(word net)並沒有加任何的限制,即為任何音節皆可接任 何音節,示意圖如下所示。
圖 4.3 辨識網路
[9]
到目前為止,老人語音語料中的國語 411 音、filler、silence 都準備妥當,便可 以進行初始模型訓練。另外我們還會建立一個 sp (short pause)的 HMM 模型,這是 代表音節與音節之間的短暫靜音,sp 只有一個狀態,此狀態允許跳躍(skip),並且與 silence 的中間狀態合併(tying),如下圖所示。
而其中 filler 是老人語料中存在許多自然語音中經常出現的口語現象,這些現象 是不易個別處理的,例如說話前的清喉嚨聲、笑聲等語言學現象和無法辨識其漢語 拼音的音節,因為在語料中存在的資料量並不足夠訓練出個別的聲學模型,所以我 們採用的方法是建立一個共同的特殊聲音模型對這些現象進行處理,並將這些現象 統稱為「filler」,而稱呼用來取代各種特殊聲音的語音模型為「filler model」,並把 filler 加入於字典(dictionary)當中,且訓練 filler 為三個狀態的 HMM 模型。下表顯示 出老人語音辨識系統 HMM 模型的參數設定:
表 4.1 老人語音辨識系統 HMM 參數設定
模型類型 個數 狀態數 Mixture/狀態
聲母 100(RCD) 3 1~16
韻母 40 5 1~16
filler 1 3 1~16
silence 1 3 32
short pause 1 1 32
『
『
『
『實驗一實驗一實驗一實驗一』』』』以以以以 TCC-300 聲學模型聲學模型聲學模型聲學模型(詳細的設定見附錄詳細的設定見附錄詳細的設定見附錄二詳細的設定見附錄二二)對老人語音語料作測試二對老人語音語料作測試對老人語音語料作測試 對老人語音語料作測試 在此我們先作老人語音測試語料對一般年齡層的 TCC-300 聲學模型作辨識,下 表為 syllable 辨識率與 penalty 的關係:
表 4.2 以 TCC-300 聲學模型對老人語音語料作測試 penalty %Del %Sub %Ins %Corr %Acc
-50 2.3 59.18 17.77 38.51 20.74 -60 2.59 59.04 16.67 38.37 21.70 -90 2.95 59.13 15.45 37.92 22.46 -120 3.08 59.26 15.11 37.66 22.55
表中的縮寫分別為Corr = correct percentage,Acc = accuracy figure,Del = deletion error,Sub = substitution error,Ins = insertion error,N = total syllable(這次實驗的N = 5520)。而辨識率的計算方式如下: 模型檢查其統計資料,發現有五個 sub-syllables (分別為兩個韻母:eh、yo 及三個聲 母:c_o、s_o、n_o)沒有出現於訓練和測試語料當中,所以這五個訓練出來的模型 是取用 global mean 時的參數,故我們將其在 HMM 模型中刪除掉,且在 dictionary、
phone table(修改過後的 phone list 詳見附錄三)與 grammar 中做修改,進而產生新的 word net,並計算總辨識率、每位語者的辨識細節(亦即為 deletion、insertion error 的 比例)以及每個句子的辨識細節,並希望能從中發現於第三章所標記的錄音品質、背
phone table(修改過後的 phone list 詳見附錄三)與 grammar 中做修改,進而產生新的 word net,並計算總辨識率、每位語者的辨識細節(亦即為 deletion、insertion error 的 比例)以及每個句子的辨識細節,並希望能從中發現於第三章所標記的錄音品質、背