转载自http://zuoshu.iteye.com/blog/1463867
在其基础上,总结其他人的经验,这里不一一列举(但还是感谢他们)。现将自己的经验与大家分享,希望大家一起进步。
1利用在线工具LMTool建立语言模型
http://www.speech.cs.cmu.edu/tools/lmtool.html
(1)用记事本编写语音命令时,第一行回车,即命令从第二行开始编写(这样生成出来的语言模型文件中语音命令排序不会乱,这里我也不知道为什么要第一行回车),然后另存时,选择UTF-8的编码方式。编写格式如下:
(2)输入以上网址:http://www.speech.cs.cmu.edu/tools/lmtool.html,点击Usethe lmtool,提交你的txt文件,点击编译。在跳转后的页面,下载后缀名为tgz的文件,注意下载下来的可能是后缀名为gz的文件,这时只要将后缀名改为tgz,然后解压即可。然后取其中后缀名为lm的文件。可以重命名为my.lm
2字典文件的生成
可以从http://sourceforge.net/projects/cmusphinx/files/,下载pocketsphinx文件
版本我选的07的,解压后在/model/lm/zh_cn中有个mandarin_notone.dic,
接下来编写程序从mandarin_notone.dic文件中查找你写入txt文件中的命令,并将查找到的内容以UTF-8编码方式写入新的文件,作为你自己语音命令的字典(命名为my.dic)。注意这里不能直接复制其中相应的命令内容,这样可能导致你复制出来的字典文件无法使用(网上说是编码方式问题)。
3声学模型文件
第二步解压出来的文件,pocketsphinx-0.7\model\hmm\zh目录下有名为tdt_sc_8k的文件夹,这个文件夹里的内容即为我们需要的声学模型文件。
4文件存放
将my.lm和my.dic文件放入名为lm的文件夹,tdt_sc_8k放入名为hmm的文件夹,lm和hmm文件夹放入data文件夹中。
如果要修改目录的话,对应修改RecognizerTask.RecognizerTask()中的:
经过以上四个步骤,文件准备完毕,重跑demo。输入自己的语音命令,基本都能识别,
最后还是谢谢网上各位程序猿给出的参考,正是你们的努力,让我们这些菜鸟有了坚持下去的勇气。
Demo下载地址:http://download.youkuaiyun.com/download/u010347927/8641385