Ich verwende android.speech.SpeechRecognizer
in DICTATION_MODE
, um Befehle für eine lange Zeit zu erkennen. In diesem Modus verzögert sich der Aufruf der Callback-Methode onPartialResults
viel mehr als im normalen Modus. Weiß jemand, warum dies geschieht und wie man diese Verzögerung vermeidet?Verzögerung bei der Verwendung von android.speech.SpeechRecognizer in DICTATION_MODE
Dies ist die Konfiguration, die ich für die SpeechRecognizer
verwenden:
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);
Ich würde vorschlagen, dass Sie sich die Flags ** RecognizerIntent ** ansehen und mit ihnen herumspielen und zusätzliche Werte in Ihr Intent-Objekt eingeben. 'EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS' <- vor allem dieses ' EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS' 'EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS' Dieses problematisch sein kann, da es anders basierend Verhalten auf der Android-Version und das Modell Ihres Geräts. Werfen Sie auch einen Blick auf diese: https://code.google.com/p/android/issues/detail?id=76130 Ich wollte es als Antwort posten, entschied aber, dass Kommentar besser wäre. – scana
Ja, ich habe diese Optionen auch ohne Erfolg ausprobiert. Irgendwelche anderen Vorschläge? – acimutal
Sie sind dem eingebauten Spracherkenner ausgeliefert. Es wartet wahrscheinlich darauf, mehr Kontext zu sammeln, um genauere Diktate zu erstellen. Wenn Sie damit unzufrieden sind, können Sie nichts anderes tun, als eine andere Spracherkennungs-Engine zu verwenden. –