SpeechRecognizer は、onPartialResults() コールバックで部分的な結果を返しているときに、デバイスがオフラインのときに onResults で ERROR_NO_MATCH を返します。前回 SpeechRecognizer をいじったときは、オフラインで正常に動作していましたが、誰か解決策を見つけたのではないでしょうか。
質問する
4300 次
2 に答える
3
答えをもう少し明確にするために、最初に部分的な結果を有効にし、特定の方法で UNSTABLE_TEXT を呼び出す必要があります。
// When creating the intent, set the partial flag to true
intent.putExtra(RecognizerIntent.EXTRA_PARTIAL_RESULTS,true);
// When requesting results in onPartialResults(), the UNSTABLE_TEXT parameter to getSTtringArrayList() must be in quotes
ArrayList<String> unstableMatches = partialResults.getStringArrayList("android.speech.extra.UNSTABLE_TEXT");
onPartialResults() は複数回呼び出され、onError() は引き続き ERROR_NO_MATCH で呼び出されます。ここにリストされているものと同様のソリューションを使用することになりました:
手短に:
- 部分的な結果とエラーが表示されたかどうかを追跡する
- onBeginningOfSpeech() で両方をリセットします
- onPartialResults() が呼び出されたときに、部分的な結果を変数に格納します
- onError() が呼び出されたら、結果が ERROR_NO_MATCH かどうかを確認し、SpeechRecognizer.RESULTS_RECOGNITION を「android.speech.extra.UNSTABLE_TEXT」と組み合わせて、部分結果変数に入れます。
- onResults() を呼び出す
于 2016-01-21T19:12:06.127 に答える