下图是一开始告诉大家的,语音识别的流程。
现在,我们已经完成了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