可能是重复的,但我没有找到以下问题的答案。
在过去的两天里,我一直在做一些关于语音识别的研究,但是我的问题没有得到答案:
发布于 2012-12-25 02:32:57
1) --将语音识别应用到服务中是正确的方法,就像Google中所做的那样,在服务中使用回调方法来获得结果。要使它连续运行,服务必须处理唤醒,以避免陷入睡眠模式。Wake locks android service recurring提供了更多的信息,它有一个很大的缺点,那就是电池使用率高,这是由于CPU的连续工作和输入声音数据的连续计算造成的。(可以通过过滤器、阈值等降低)
2)语音识别不是一项简单的任务。它需要大量的计算和数据可供参考。如果输入声音不清晰(噪音,很多人的声音等),就很难得到适当的输出。可以做的是,过滤输入音频:噪音抑制,低通滤波器等。你不能期望100%的准确度,但可以达到80-95 %。
更难的是过滤许多人的声音。但是也可以使用一些简单的振幅(音频强度级)算法,通过自适应阈值来决定单词的开始和结束时间。正确的声音是最接近电话/设备的声音。因此,根据4),当用户靠近麦克风说话时,的准确性更高,因为它是声音最大的。
3)我不知道你所说的传感器是什么意思,但是有一些算法可以简单地检测人的声音,而不是解码单词。这些算法称为语音活动检测(VAD),一些代码应该在Speex项目文档http://www.speex.org/中找到
处理语音识别的最简单的方法是使用Google,它识别了很多语言,但需要一个Internet连接--这需要一段时间才能得到结果。
CMU狮身人面像速度更快,但语言模型很少,需要更多的RAM内存和进程计算,因为所有解码都是在设备上完成的。在我的观点中,当dicitionary (被撤销的单词)是小的,比如命令(左、右、向后、停止、开始等)时,它是非常好的。
https://stackoverflow.com/questions/14026491
复制相似问题