利用pocketsphinx实现Android离线语音识别(中文)

来源:互联网 发布:先迈网络兼职是真的吗 编辑:程序博客网 时间:2024/05/16 23:50

    由于毕设要用到离线语音识别的东西,所以上网找了好多例子。本文主要参考了以下两篇博文中的内容,在此表示感谢:

    1.Android下通过pocketsphinx实现离线语音识别的环境搭建和demo运行

    2.Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率

    通过其中的例子应该可以在Android上顺利搭建一个demo。如果这个过程中出错的可以下载第二篇博文中的代码,然后在Eclipse中导入工程,导入后可能会报错,这是需要右键项目名,选properties-builders,删掉出错的builder即可。代码编译成功后,在运行之前需要将语言模型文件放入手机SD卡中,主要有一下三个文件:

/sdcard/Android/data/test/hmm/tdt_sc_8k

/sdcard/Android/data/test/lm/test.dic

/sdcard/Android/data/test/lm/test.lm

    可以从第二篇博文中的data链接下载。如果想修改路径的话,需要修改RecognizerTask.RecognizerTask()里的如下代码

  c.setString("-hmm", "/sdcard/Android/data/test/hmm/tdt_sc_8k");
  c.setString("-dict", "/sdcard/Android/data/test/lm/test.dic");
  c.setString("-lm", "/sdcard/Android/data/test/lm/test.lm");

    对于语言模型文件的生成,可以从http://www.speech.cs.cmu.edu/tools/lmtool-new.html这个地址生成。但是上传的命令文件要十分小心,只能上传utf8格式的文件,最好在linux系统下生成该文件。第二篇博文中给出的命令文件中命令字符串都用<s></s>标签包含,我尝试过,但生成的lm文件并不能识别,然后将<s></s>标签去掉上传,反而能成功识别,因此需要注意。lm文件下载后,需要对比标准dic文件,生成对应命令集的dic文件,这一步很简单。

0 0
原创粉丝点击