首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android:语音识别

Android:语音识别
EN

Stack Overflow用户
提问于 2012-12-24 23:31:24
回答 1查看 11.1K关注 0票数 6

可能是重复的,但我没有找到以下问题的答案。

在过去的两天里,我一直在做一些关于语音识别的研究,但是我的问题没有得到答案:

  1. 作为一项服务,可以运行语音识别吗?我想实现这样的东西:我需要打一个号码,虽然我的电话通过语音识别是在睡眠模式。
  2. 当我在火车、公共汽车等的时候,语音识别能正确地检测出单词吗?
  3. 除了语音识别之外,是否有任何传感器来检测声音?
  4. 要使语音识别正常工作,用户是否需要靠近电话说话?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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 (被撤销的单词)是小的,比如命令(左、右、向后、停止、开始等)时,它是非常好的。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14026491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档