微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:语音识别

[可能重复]但我没有在下面找到我的问题的答案.

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

>是否可以将语音识别作为服务运行?我想实现这样的事情:虽然我的手机通过语音识别处于睡眠模式,但我需要拨打电话.
>当我乘坐火车,公共汽车等时,语音识别是否能正常检测?
>除语音识别外,是否有任何传感器可以检测语音?
>要使语音识别正常工作,用户是否需要靠近手机说话?

解决方法

1)将语音识别放入服务是正确的方法,就像它在Google Api中制作一样,其中回调方法用于获取结果.为了使其连续运行,服务必须处理将避免陷入睡眠模式的唤醒锁.这里提供了更多信息 Wake locks android service recurring它有一个很大的缺点 – 电池使用率高,由于cpu的连续工作和输入声音数据的连续计算. (可以通过过滤器,阈值等减少)

2)语音识别不是一项简单的任务.它需要大量的计算和数据来参考.如果输入音频不清晰(噪音,许多人声等),则很难获得正确的输出.可以做的更好的准确性是,滤波输入音频:噪声抑制,低通滤波器等.您不能期望100%的准确度,但可以实现80-95%.

更难的是过滤许多人类的声音.但是可以使用一些具有自适应阈值的简单幅度(音频强度等级)算法来决定何时字开始和结束.想法是正确的声音是最响的=最接近电话/设备.因此,根据4)当用户靠近麦克风讲话时,准确性更好,因为它是最响亮的声音.

3)我不知道你的意思是传感器,但有一些算法可以简单地检测人类的声音,而不是解码单词.这些算法称为语音活动检测(VAD).某些代码应在Speex项目文档http://www.speex.org/中找到

处理语音识别的最简单方法是使用Google Speech api,它非常好,它能识别大量语言但需要互联网连接 – 而且需要一段时间才能获得结果.CMU Sphinx更快,但它的语言模型很少,需要更多的RAM内存和proccesor计算,因为所有的解码都是在设备上完成的.在我的意见中,当dicitionary(被识别的词)像命令(左,右,后,停,开等)一样小时非常好.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐