Android.speech.SpeechRecognizer
のDICTATION_MODE
を使用して、長期間コマンドを認識しています。このモードでは、コールバックメソッドonPartialResults
の呼び出しは、通常モードよりもはるかに遅延します。なぜこれが起こるのか、そしてこの遅延を回避する方法を誰かが知っていますか?
これは私が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);
問題はインターネットの速度が原因である可能性があります。
EXTRA_PREFER_OFFLINE
をtrueに設定して、遅延が減少するかどうかを確認してください
https://developer.Android.com/reference/Android/speech/RecognizerIntent.html#EXTRA_PREFER_OFFLINE