2018年1月17日 星期三

HTK Tools (2): 資料準備 - 轉換 WAV 檔案至 MFCC 特徵檔案

上一節使用語音的文字轉為音素檔案,本章節將把語音轉為 MFCC 參數化檔案,語音會被 HTK 自動處理,變成 MFCC 檔案。


本章節對應 Chapter 3 - Data Preparation 的第五小節 Step 5 - Coding the Data ,其工作區一樣在 測試語料資料夾的 /etc 目錄。

建立參數描述檔案


首先,在 /etc 目錄下要建立一個名為 config (無副檔名) 的檔案,並且輸入以下參數:


# Coding parameters
TARGETKIND = MFCC_0 #建議參照這個格式, 0 代表尚未進行微分運算,所以是第 0 次
TARGETRATE = 100000.0
SAVECOMPRESSED = T
SAVEWITHCRC = T
WINDOWSIZE = 250000.0
USEHAMMING = T
PREEMCOEF = 0.97
NUMCHANS = 26
CEPLIFTER = 22
NUMCEPS = 12
ENORMALISE = F
SOURCEFORMAT = WAV #請注意,這個部分是給用 wav 檔案來訓練的使用者,若不加所導致的錯誤,請參考本文章 Reference 小節。

請記得在檔案最後做斷行,避免執行時出錯;如果有加最後一段的 SOURCEFORMAT 描述,請記得在輸入指令執行後後,移除掉。

MFCC (梅爾頻譜參數),通常會做 2 次差分運算,也就是做到二階微分,一次的 MFCC 參數就會有 13 個參數,所以進行到二階微分後,總共會有 39 個 MFCC 特徵參數。

建立 WAV 位置對應的檔案


在 /etc 目錄下建立一個 codetr.scp 檔案,該檔案描述目前檔案的 wav 位置,以及被執行後要儲存成 mfc 的檔案位置,撰寫格式如下:

C:\Users\xxxxxx\wav\a0319.wav C:\xxxxxx\mfcc\a0319.mfc


請記得建立一個 mfcc 這個資料夾,在對應的位置上,本章節是建立在 /etc 目錄的上一層目錄;且 wav 檔案名稱建議與對應的 mfc 檔案一樣。

HCopy 指令

建立以下必要檔案後,就可以執行 HCopy 指令:

  • config (設定描述檔)
  • codetr.scp (檔案結構定義檔案)

確認後,使用以下指令對語音檔案建立 MFCC 參數檔案:


HCopy -T 1 -C config -S codetr.scp

指令使用後,離開 /etc 目錄,到 /mfcc 目錄就會看到產生出來的對應 mfc 參數檔案。

如果沒有成功,請確定是否是因為使用 wav 檔案輸入,且 config 檔案最尾端沒有加上 SOURCEFORMAT = WAV 導致。


Reference:
https://stackoverflow.com/questions/32723945/htk-hcompv-input-file-is-not-in-riff-format
http://www.voxforge.org/home/dev/acousticmodels/linux/create/htkjulius/how-to/script/comments/step-5-error6311-error1014
http://www.voxforge.org/home/forums/message-boards/speech-recognition-engines/converting-.wav-to-.mfc-using-hcopy-in-htk
https://zhidao.baidu.com/question/200494831.html

沒有留言:

張貼留言

© Mac Taylor, 歡迎自由轉貼。
Background Email Pattern by Toby Elliott
Since 2014