一般語音辨識中,會以聲學模型來作為語音辨識的基本單位,因此要進行語音資料的訓練來求取聲學模型的參數時,就必須要先確認聲學模型的結構。以下先介紹幾個常用的名詞:以我們常用的語音辨識系統而言,是以 biphone 為聲學模型的單位,根據由音節到Mixture的階層架構,我們可以畫出下列示意圖:
- 聲學模型(Acoustic Model,或簡稱 Model):使用於 HMM 的一個抽象單位,通常一個聲學模型包含數個狀態。我們可以使用音節或是音素作為一個聲學模型。
- 音節(Syllables):完整發音的單位,以中文來說,一個字元對應一個音節;以英文來說,一個詞彙可以對應到數個音節,例如 tomorrow 有三個音節。
- 音素(Phoneme):或簡稱 Phone,是發音的最小單位,例如「大」的發音可以拆解成ㄉ和ㄚ兩個音素,但是音素的拆解並非一成不變,例如碰到滑母音,我們通常就會將一個注音符號拆成兩個音素,例如ㄞ、ㄟ、ㄠ、ㄡ等,這幾個母音在發音過程中,都會呈現連續的變化。
- Monophone:以單一音素作為一個聲學模型,例如ㄇ。
- Biphone:以連續兩個音素作為聲學模型,通常是 RCD (Right-context dependent),例如將ㄇ出現於ㄇ-ㄚ和ㄇ-ㄧ視為兩個不同的聲學模型。
- Triphone:以連續三個音素作為聲學模型,例如將ㄨ在ㄎ+ㄨ-ㄢ及ㄍ+ㄨ-ㄤ視為兩個不同的聲學模型。
在上圖中,每一個 state 又分成三個 stream,分別是 MFCC、ΔMFCC、ΔΔMFCC,由於 MFCC 是最重要的語音特徵,因此我們使用 6 個 mixture 來對 MFCC 建模,至於 ΔMFCC 及 ΔΔMFCC,我們各用兩個 mixture 來建模。 若以辨識網路及 HMM 的觀點來看,示意圖如下:
上圖中特別註明了三種 transition: 一旦確認聲學模型的架構,我們就可以使用 HTK 來對大量語料抽取出聲學模型的機率參數,請見下一節的說明。
- Type 0: Transition between syllable
- Type 1: Transition between model
- Type 2: Transition between state
Audio Signal Processing and Recognition (音訊處理與辨識)