Android - Speech Recognition Limiting Listening Time

You can't limit the time that the recognizer is listening. Just set the minimum time that he need to listen before close, but not a max one.

I have been looking to a solution for this problem too, So I hope that maybe you will find a better one. I found this post from another StackOverflow mate:

SpeechRecognizer Time Limit

There, he propose the next possibility to fix your problem:

Your best bet would be to thread some sort of timer, something like a CountDownTimer:

 yourSpeechListener.startListening(yourRecognizerIntent);
 new CountDownTimer(2000, 1000) {

 public void onTick(long millisUntilFinished) {
     //do nothing, just let it tick
 }

 public void onFinish() {
     yourSpeechListener.stopListening();
 }   }.start();

In other way, to make your SpeechRecognition short, you can add the next parameter to your Intent: EXTRA_PARTIAL_RESULTS

This will let you get partial results from your SpeechRecognizer, which means that your methoronActivityPartialResult will return you another array with matches value. This method is called before onActivityResults and its more fast, but of course is not as precise as onActivityResult. So that will just help you if your Listener is looking for a specific word.

Hope that this will help you a bit with your app!

Good Luck!