I use the Google API for speech recognition, but I want to limit the listening time. For example, two seconds. After two seconds, although the user continues to recognize conversations, he should stop listening. I tried several EXTRA for example
EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS
but it didn’t help me. My complete code is here, if anyone can help me, I will appreciate
public void promptSpeechInput() { //This intent recognize the peech Intent i = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); i.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); i.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()); i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say Something"); try { startActivityForResult(i, 100); } catch (ActivityNotFoundException a) { Toast.makeText(MainActivity.this,"Your device does not support",Toast.LENGTH_LONG).show(); } } //For receiving speech input public void onActivityResult(int request_code, int result_code, Intent i) { super.onActivityResult(request_code, result_code, i); switch (request_code) { case 100: if(result_code == RESULT_OK && i != null) { ArrayList<String> result = i.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); resultTEXT.setText(result.get(0)); } break; } }
source share