17-3 Digit Recognition: Varying MFCC Dimensions (あr恁GMFCC)

在上一節中,我們已經使用中文數字辨識來說明了 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。其中

若使用 26 維的 MFCC_E_D_Z,可見下列範例:

Example 1: htk/chineseDigitRecog/training/goSyl26.mhtkPrm=htkParamSet; htkPrm.pamFile='digitSyl.pam'; htkPrm.feaCfgFile='mfcc26.cfg'; htkPrm.feaType='MFCC_E_D_Z'; htkPrm.feaDim=26; htkPrm.streamWidth=[26]; disp(htkPrm) [trainRR, testRR]=htkTrainTest(htkPrm); fprintf('Inside test = %g%%, outside test = %g%%\n', trainRR, testRR); pamFile: 'digitSyl.pam' feaCfgFile: 'mfcc26.cfg' waveDir: '..\waveFile' sylMlfFile: 'digitSyl.mlf' phoneMlfFile: 'digitSylPhone.mlf' mnlFile: 'digitSyl.mnl' grammarFile: 'digit.grammar' feaType: 'MFCC_E_D_Z' feaDim: 26 mixtureNum: 3 stateNum: 3 streamWidth: 26 Pruning-Off Pruning-Off Pruning-Off Pruning-Off Pruning-Off Inside test = 91.29%, outside test = 92.86%

對應的 batch 檔案,請見 goSyl26.bat。

若使用 39 維的 MFCC_E_D_A_Z,請見下列範例:

Example 2: htk/chineseDigitRecog/training/goSyl39.mhtkPrm=htkParamSet; htkPrm.pamFile='digitSyl.pam'; htkPrm.feaCfgFile='mfcc39.cfg'; htkPrm.feaType='MFCC_E_D_A_Z'; htkPrm.feaDim=39; htkPrm.streamWidth=[39]; disp(htkPrm) [trainRR, testRR]=htkTrainTest(htkPrm); fprintf('Inside test = %g%%, outside test = %g%%\n', trainRR, testRR); pamFile: 'digitSyl.pam' feaCfgFile: 'mfcc39.cfg' waveDir: '..\waveFile' sylMlfFile: 'digitSyl.mlf' phoneMlfFile: 'digitSylPhone.mlf' mnlFile: 'digitSyl.mnl' grammarFile: 'digit.grammar' feaType: 'MFCC_E_D_A_Z' feaDim: 39 mixtureNum: 3 stateNum: 3 streamWidth: 39 Pruning-Off Pruning-Off Pruning-Off Pruning-Off Pruning-Off Inside test = 91.07%, outside test = 92.86%

對應的 batch 檔案,請見 goSyl39.bat。

在對應的 batch 檔案方面,我們並沒有包成函數來執行,所以其內容看起來會比較繁複。從 goSyl13.bat 演變到 goSyl26.bat,事實上只改變了兩列,讀者可以使用下列指令來比較其差異:

fc goSyl13.bat goSyl26.bat
利用相同的方法,也可以比較 goSyl26.bat 和 goSyl39.bat 的差異。
Audio Signal Processing and Recognition (音訊處理與辨識)