好好的C++不去写,为啥想起来搞什么语音识别?事情是这样的,我经常躺在床上听歌,使用电脑连音响播放,因为我比较懒,切歌啥的都直接召唤小娜帮我做,可以节省体力。然而小娜笨啊,除了能切歌啥也干不了,我要是听到一首好听的,还得爬起来去收藏,这多么麻烦是不是?小娜也没开放啥接口可以自定义命令,就想自己写一个程序,识别到我的指令后,按照播放器的快捷键虚拟键盘按键事件。
网上一搜“开源语音识别引擎”,好,就是你了:cmu sphinx。然而结果是惨淡的,周末两天的工作成果并没能使我轻松一点。我的“小小红”虽然能听懂更多我需要的指令,然而只有在我不播放音乐时才听得懂,环境噪声稍大就不听话了。相比之下小娜就可靠多了,即使开着音乐也能听懂我的指令。虽然失败了,但也做个记录吧,当然是以一个语音识别门外汉的视角做的记录,是自己的理解,不见得准确。
sphinx_fe -argfile .\zh_broadcastnews_ptm256_8000\feat.params -samprate 16000 -c .\arctic20.fileids -di . -do . -ei wav -eo mfc -mswav yes
bw -hmmdir .\zh_broadcastnews_ptm256_8000 -moddeffn .\zh_broadcastnews_ptm256_8000\mdef -ts2cbfn .ptm. -feat s2_4x -cmn current -agc none -dictfn self.dic -ctlfn .\arctic20.fileids -lsnfn .\arctic20.transcription -accumdir .
mllr_solve.exe -meanfn .\zh_broadcastnews_ptm256_8000\means -varfn .\zh_broadcastnews_ptm256_8000\variances -outmllrfn mllr_matrix -accumdir .
map_adapt.exe -moddeffn .\zh_broadcastnews_ptm256_8000\mdef -ts2cbfn .ptm. -meanfn .\zh_broadcastnews_ptm256_8000\means -varfn .\zh_broadcastnews_ptm256_8000\variances -mixwfn .\zh_broadcastnews_ptm256_8000\mixture_weights -tmatfn .\zh_broadcastnews_ptm256_8000\transition_matrices -accumdir . -mapmeanfn .\zh_ptm_adapt\means -mapvarfn .\zh_ptm_adapt\variances -mapmixwfn .\zh_ptm_adapt\mixture_weights -maptmatfn .\zh_ptm_adapt\transition_matrices