Search code examples
androidspeech-recognitionandroid-4.2-jelly-bean

RecognitionListener in JellyBean Freezes if not spoken to immediately


A speech-recognition based app I am working on works well on all versions of Android starting from API 8 (Android 2.2).

But on a Nexus S 4G (Android 4.1.1), RecognitionListener will simply halt for about 1 minute, then issue an ERROR_SERVER via its onError() callback.

If spoken to within 1-2 seconds (of that onReadyForSpeech bleep), it will behave properly as expected.

What changed in JellyBean that could explain this behavior?

More importantly, is there a way to make it behave like in the older versions of Android? (i.e. keep listening, then issue ERROR_SPEECH_TIMEOUT if not spoken to within the default 10 seconds)


Solution

  • I ended up using the solution suggested by @scriptocalypse

    Thank you @scriptocalypse!

    (I haven't had the chance to try the solution suggested by @HoanNguyen because it implements a service which is beyond the scope of my tiny app, but it looks promising. Thank you @HoanNguyen, too.)