代码改变世界

(四)看看成果

2014-12-27 14:43  Ansersion  阅读(2746)  评论(0编辑  收藏  举报

下图是一开始告诉大家的,语音识别的流程。

现在,我们已经完成了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