recognition - Retraso al usar android.speech.SpeechRecognizer en DICTATION_MODE
voice command android developer (2)
Estoy usando
android.speech.SpeechRecognizer
en
DICTATION_MODE
para reconocer comandos durante un largo período de tiempo.
En este modo, la llamada al método de devolución de llamada
onPartialResults
demora mucho más que en el modo normal.
¿Alguien sabe por qué sucede esto y cómo evitar este retraso?
Esta es la configuración que uso para
SpeechRecognizer
:
Intent recognizerIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
recognizerIntent.putExtra("calling_package", mainActivity.getApplicationContext().getPackageName());
recognizerIntent.putExtra("android.speech.extra.DICTATION_MODE", true);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS, true);
recognizerIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 100);
El problema puede deberse a la velocidad de internet.
Intente establecer
EXTRA_PREFER_OFFLINE
en verdadero y verifique si se reducirá el retraso
https://developer.android.com/reference/android/speech/RecognizerIntent.html#EXTRA_PREFER_OFFLINE
El tiempo de respuesta depende de muchos factores, como:
- características del dispositivo
- versión del sistema operativo
- velocidad de Internet
Y en común es más largo porque este modo implica adivinar el contexto y tratar de descubrir el significado de los cambios con cada palabra nueva.