在Android ICS上的App语音触发控制和离线语音识别

时间:2014-01-14 10:19:05

标签: android speech-recognition android-4.0-ice-cream-sandwich

我目前正在开发一个跨平台应用程序,它应该在Google GLASS(Android 4.0.4),智能手机(Android 4.0.4或更高版本)以及其他可穿戴设备上运行。至少它将是ICS - 冰淇淋三明治版本 这个应用程序为我提供了由用户或系统触发的事件驱动的不同视图(网络 - 事件) 为了用户的控制,我想实现语音识别,只需要识别数字或至少单个数字以及前后命令。重要的是它也可以脱机工作,它应该在应用程序运行时在后台工作,不应该覆盖用户界面 相关工作:
SpeechRecognizer似乎只有使用jellybean的离线功能,(还没有找到在Android 4.0.4上使用它的方法)。
在我看来,实现自定义IME和使用VoiceTyping是非常昂贵和肮脏的。 (就像Utter!,顺便说一下。真的很棒!) 首次尝试使用pocketsphinx尚未成功。

2 个答案:

答案 0 :(得分:2)

Jelly Bean的离线语音功能由内部的Google搜索应用程序处理。 RecognizerIntentSpeechRecognizer API都没有变化。

这对于您想要实现的目标并不理想,因为依赖于非跨平台的封闭源应用程序将会在工作中抛出一个扳手....无论如何,一个简单的 offline = true 参数无处可见,你最终不得不强迫这种行为。 我顺便提出了这个参数!

谷歌使用专用处理器内核处理他们的唤醒短语,但看起来unlikely that the manufacturers intend to expose this functionality to anyone other than OEMs

这留下了其他具有RESTful服务的替代识别提供商,例如iSpeechAT&TNuance,但同样,你将会谋杀电池并使用大量数据你采取这种方法。更不用说Android平台上发生的音频冲突了。

最后,您最终得到了Sphinx。目前,我认为它是降低资源使用率的唯一可行解决方案,但它并没有解决音频冲突问题。我一直在努力让它在我的应用程序中运行很长一段时间,但我仍然存在一些误报,这些误报阻止了我将它包括在生产中。

这可能是您唯一的选择,直到Google,处理器制造商和原始设备制造商计算出如何提供此类功能,而设备上安装的每个应用程序都不需要采取行动,这是不可避免的......

我不确定这个回复实际提供和回答,更多的是排除了一些!

祝你好运

编辑:在可穿戴设备的环境中,此类产品可以访问专用内核 - 至少他们需要确保他们使用具有此类功能的处理器。从我与开发这种技术的公司的互动中,他们经常忽视这一点,或者不知道它的必要性。

答案 1 :(得分:1)

我想对你的问题提出部分答案。由于您希望语音识别不会干扰UI,您可以创建一个服务,使用它可以使其成为连续的语音识别器,避免图形小部件并避免“哔”声。 我使用以下方式并为我工作正常: Android Speech Recognition Continuous Service