下圖是一開始告訴大家的,語音識別的流程。
現在,我們已經完成了HMM模塊了。
所以我們只要錄音就可以被識別了!!!
以下是完整的識別流程圖:
(1)wav文件:錄音文件。
(2)mfc文件:wav文件格式轉換后可得。
(3)HMM:之前的工作就是為了得到這個。
話不多說,開始吧!
1、錄音:
我錄了7個測試音頻文件,都放在/home/ansersion/htk_color/data/test/speech/目錄下,分別為
(1)red.wav:“red“(我的聲音)
(2)blue.wav:”blue"(我的聲音)
(3)red_other.wav:“red"(同學的聲音)
(4)blue_other.wav:“blue"(同學的聲音)
(5)yellow_other.wav:"yellow"(同學的聲音)
(6)null.wav:空錄了一段
(7)pikapika.wav:“pikapika"(”皮卡丘“的聲音(勿噴))
2、wav文件轉mfc文件(類似的步驟之前做過,還有沒有印象呢?):
(1)手動編輯“轉換清單”codetest.scp,並置於config目錄下,內容如下(注:博客顯示可能有問題,真實的排版為下圖,如果兩者一樣請忽略)
/home/ansersion/htk_color/data/test/speech/red.wav /home/ansersion/htk_color/data/test/mfc/red.mfc /home/ansersion/htk_color/data/test/speech/blue.wav /home/ansersion/htk_color/data/test/mfc/blue.mfc /home/ansersion/htk_color/data/test/speech/red_other.wav /home/ansersion/htk_color/data/test/mfc/red_other.mfc /home/ansersion/htk_color/data/test/speech/blue_other.wav /home/ansersion/htk_color/data/test/mfc/blue_other.mfc /home/ansersion/htk_color/data/test/speech/yellow_other.wav /home/ansersion/htk_color/data/test/mfc/yellow_other.mfc /home/ansersion/htk_color/data/test/speech/null.wav /home/ansersion/htk_color/data/test/mfc/null.mfc /home/ansersion/htk_color/data/test/speech/pikapika.wav /home/ansersion/htk_color/data/test/mfc/pikapika.mfc
(2)wav文件轉換成mlf文件:
HCopy -T 1 -C ./config/config_HCopy -S ./config/codetest.scp
此后,data/test/mfc目錄會生成red.mfc; blue.mfc; red_other.mfc; blue_other.mfc; yellow_other.mfc; null.mfc; pikapika.mfc;
3、識別咯,識別咯!
(1)手動編輯test.scp,指定了要識別的文件,並置於config目錄下,內容如下(其實就是codetest.scp的“右半邊內容”):
/home/ansersion/htk_color/data/test/mfc/red.mfc /home/ansersion/htk_color/data/test/mfc/blue.mfc /home/ansersion/htk_color/data/test/mfc/red_other.mfc /home/ansersion/htk_color/data/test/mfc/blue_other.mfc /home/ansersion/htk_color/data/test/mfc/yellow_other.mfc /home/ansersion/htk_color/data/test/mfc/null.mfc /home/ansersion/htk_color/data/test/mfc/pikapika.mfc
(2)識別,並將識別結果存入recout_step7.txt文件:
HVite -H ./hmm7/macros -H ./hmm7/hmmdefs -C ./config/config_color -S ./config/test.scp -l '*' -i ./results/recout_step7.txt -w ./config/wordnet -p 0.0 -s 5.0 ./dict/dict_color ./lists/monophones
以下是我的recout_step7.txt文件:
從以上結果可以看到,red.rec,blue.rec,red_other.rec,blue_other.rec只是的識別結果都是對的。
yellow_other.rec被識別成了RED---->所以說各人的語音習慣有別嘛。
null.rec被識別成了BLUE---->這個肯定不對,不過我也只規定了三種識別結果嘛。
pikapika.rec被識別成了YELLOW----->要是真被識別成“皮卡丘”,那我也是醉了……不過,在你稍微理解了整個流程之間的邏輯關系后,這個還真的可以有!
HTK Book涉及內容:
Chapter 3: 3.4.1 Step 11 - Recognising the Test Data