私はかなり奇妙な問題を抱えています。SpeechRecognizer
クラスを使用して音声認識を追加する Android アプリがあります。各イベントのログ メッセージを出力するだけの RecognitionListener を実装するクラスを作成しました。そして、すべてがうまくいくようです。onReadyForSpeech が起動され、onBeginningOfSpeech が起動され、onEndOfSpeech が起動されます。
ただし、1 つの重要なイベント onResults :p が発生しません。
そのため、Summery では、すべてが問題ないように見え、例外はスローされず、リッスンが正常に開始および停止されたことを示すイベントが表示されます。結果を onResults などに送信する必要があることを SpeechRecognizer に通知するインテントに余分なものがありませんか?
私は次のようにインテントを設定しました
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 5);
SpeechRecognizer は次のように行われます。
SpeechRecognizer speech = SpeechRecognizer.createSpeechRecognizer(this);
speech.setRecognitionListener(this);
そして、私は聞き始めます
speech.startListening(intent);