最近语音识别很火,但是都是用的在线语音识别,研究了一下离线语音识别,小范围内的语音识别率还不错,在此记录一下
首先本文要说的两个前提1.android平台离线语音识别 2.小范围语音
小范围语音指的是相对固定的命令。本文的例子大概实现了20条语音命令,超出范围的无法识别。因此本文中离线语音的使用范围也有限,对于一些固定的输入可能有用,比如用语音命令代替打开,播放,重启这些简单的固定的命令。
先上个例子
1.按照 http://leiwuluan.iteye.com/blog/1287305 的方法,先跑一个PocketSphinxDemo的例子起来。跑起来之后会发现语音识别率很低,大概20%不到。下面来优化一下
2.编写自己的命令集
<s>百度</s>
<s>谷歌</s>
<s>音乐</s>
<s>抬头</s>
<s>低头</s>
保存为command.txt
在http://www.speech.cs.cmu.edu/tools/lmtool.html上点Browse,提交command.txt,在线生成语言模型文件。这里只要生成的lm文件,命名为test.lm。从这里下载pocketsphinx-win32,解压后在/model/lm/zh_cn有个mandarin_notone.dic的文件,打开后,搜索command.txt里面的词,然后替换相应的内容,替换后的内容如下
存为test.dic
3.替换语言模型文件。下载附件中的data.zip,解压后文件如下(之前附件中的data不可用,已更新)
分别放到一下目录
/sdcard/Android/data/test/hmm/tdt_sc_8k
/sdcard/Android/data/test/lm/test.dic
/sdcard/Android/data/test/lm/test.lm
如果要换目录的话,对应修改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");
lm和dic文件即3中生成的文件,tdt_sc_8k也可以从这里下载。
4.文件准备完毕,重新跑1中的demo。语音输入2中的命令,识别率99%以上,但是输入命令集以外的无法识别。
6.附件为工程文件,将data解压,按照3里面写的位置放到sd卡里面即可。以下字典内的词可以识别
相关推荐
本项目聚焦于使用开源项目PocketSphinx来实现离线语音识别,旨在为小范围的特定词汇提供高达99%的识别率。虽然不能确保所有代码都能直接运行,但它们提供了一个学习和参考的基础。 PocketSphinx是CMU Sphinx...
总结来说,Android平台上使用PocketSphinx进行离线语音识别,通过定制化的语言模型和acoustic model,以及有效的参数配置,可以在小范围内实现高准确度的识别。这个项目为那些需要离线、快速、私密的语音交互应用...
Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率.zip源码资源下载Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率.zip源码资源下载
本项目利用开源的PocketSphinx库实现了一个离线语音识别系统,其在小范围语音识别上达到了99%的高准确率,这对于毕业设计和学习Android开发的学生来说是一个很好的实践案例。 PocketSphinx是一个轻量级的语音识别...
Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率.zip项目安卓应用源码下载Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 ...
在Android平台上实现离线语音识别是一项技术挑战,但通过使用开源项目PocketSphinx,我们可以创建一个高效、小范围内的语音识别系统。PocketSphinx是一个专为低资源环境设计的连续语音识别引擎,它允许开发者在没有...
在Android平台上实现离线语音识别是一项技术挑战,但通过使用开源项目PocketSphinx,我们可以创建一个高效、小范围内的高精度语音识别应用。PocketSphinx是CMU Sphinx语音识别库的一部分,专门设计用于低资源环境,...
本项目“Android应用源码之使用PocketSphinx做离线语音识别,小范围语音99%识别率”提供了这样的解决方案,特别适合于需要高效、精确且对网络依赖较小的场景,如教育、智能家居或医疗应用。 PocketSphinx是CMU ...
在Android平台上实现离线语音识别是一项技术挑战,但PocketSphinx提供了一种高效且实用的解决方案。PocketSphinx是一款开源的、轻量级的语音识别引擎,特别适合于移动设备和资源有限的环境。它是由Carnegie Mellon ...
本文将深入探讨如何使用PocketSphinx在Android应用中实现高效、准确的小范围语音识别,达到99%的识别率。 PocketSphinx是CMU Sphinx项目的一部分,是一个开源的、轻量级的语音识别引擎,特别适合于资源受限的设备,...
本源码示例主要展示了如何在Android上集成并使用PocketSphinx来实现高精度的小范围语音识别,识别率高达99%。 首先,我们需要理解PocketSphinx的工作原理。PocketSphinx基于隐马尔科夫模型(HMM),这种模型能够...
通过以上步骤,你可以在Android平台上使用PocketSphinx实现离线语音识别,从而为用户提供无需网络连接的交互体验。尽管离线识别可能不如在线服务那样全面,但其优势在于隐私保护、低延迟和稳定性,特别适合于特定...
本文将深入探讨如何在Android应用中集成PocketSphinx实现离线语音识别,并达到小范围语音99%的识别率。 PocketSphinx是CMU Sphinx项目的一部分,由卡内基梅隆大学开发,是一个轻量级的离线语音识别引擎,特别适合...
这个压缩包文件"安卓Android源码——平台使用PocketSphinx做离线语音识别,小范围语音99%识别率.zip"包含了一个示例项目,演示了如何在Android应用中集成PocketSphinx,以实现高准确率的离线语音识别。 首先,我们...
在安卓(Android)平台上实现离线语音识别,PocketSphinx是一个非常重要的工具。这款开源工具是CMU Sphinx语音识别库的一部分,专为低资源环境设计,可以在设备本地进行语音识别,无需依赖网络服务。本教程将详细...