在上一節中,我們已經使用中文數字辨識來說明了 HTK 的基本使用方式,在本節及以下各節中,我們將說明如何改變各種參數(包含語音特徵、聲學模型架構等),以便改進辨識率。
首先,我們將基本訓練及測試的程式包成一個函數 htkTrainTest.m,以便能夠反覆呼叫,此函數接收一個結構變數 htkPrm,包含訓練所用到的各種參數。
首先,在聲學模型架構不變的情況下,我們可以改變語音特徵,上一節範例所用的語音特徵是 13 維的 MFCC_E(MFCC & Energy),我們可以加到 26 維的 MFCC_E_D 或是 MFCC_E_D_Z,也可以加到 39 維的 MFCC_E_D_A 或 MFCC_E_D_A_Z。其中
- E: Energy
- D: Delta 項目,代表一次差量。
- A: Acceleration 項目,到表二次差量。
- Z: 代表會進行 Cepstrum Mean Subtraction (CMS)。
若使用 26 維的 MFCC_E_D_Z,可見下列範例:
對應的 batch 檔案,請見 goSyl26.bat。
若使用 39 維的 MFCC_E_D_A_Z,請見下列範例:
對應的 batch 檔案,請見 goSyl39.bat。
在對應的 batch 檔案方面,我們並沒有包成函數來執行,所以其內容看起來會比較繁複。從 goSyl13.bat 演變到 goSyl26.bat,事實上只改變了兩列,讀者可以使用下列指令來比較其差異:
fc goSyl13.bat goSyl26.bat
利用相同的方法,也可以比較 goSyl26.bat 和 goSyl39.bat 的差異。
Audio Signal Processing and Recognition (音訊處理與辨識)