如果没有立即说话,JellyBean中的RecognitionListener会冻结

时间:2013-01-02 04:01:48

标签: android speech-recognition android-4.2-jelly-bean

我正在开发的基于语音识别的应用程序适用于从API 8(Android 2.2)开始的所有Android版本。

但是在Nexus S 4G(Android 4.1.1)上,RecognitionListener将暂停约1分钟,然后通过其onError()回调发出ERROR_SERVER。

如果在 1-2 秒内(onReadyForSpeech哔哔声)说话,它将按预期正常运行。

JellyBean中有什么变化可以解释这种行为?

更重要的是,有没有办法让它在旧版本的Android中表现得像? (即继续听,然后发出ERROR_SPEECH_TIMEOUT,如果没有在默认 10秒内说出话)

2 个答案:

答案 0 :(得分:1)

我最终使用了@scriptocalypse

建议的解决方案

谢谢@scriptocalypse!

(我没有机会尝试@HoanNguyen建议的解决方案,因为它实现的服务超出了我的小应用程序的范围,但看起来很有希望。谢谢@HoanNguyen。)

答案 1 :(得分:-2)

有一个similar post here提供了在收到ERROR_TIMEOUT_SPEECH结果后再次收听的建议。