26

音声認識ベースのアプリで、ERROR_RECOGNIZER_BUSY を受け取ることがあります。直観的に、これには... retriesが必要ですよね?

問題は、このエラーが非常に文書化されていないことです。そのため、明らかに、この分野でより経験豊富な誰かが答えることができる質問があります。

  1. このようなエラーの原因は何ですか? 本当に忙しいサーバーだけですか(Googleで)?または、これは私のアプリのバグを示唆している可能性がありますか?
  2. 再試行する前に、明示的にセッションを閉じたり、再度開いたりする必要がありますか?
  3. どのくらいの頻度で再試行しますか? 1秒に1回?5秒ごと?他の?

あなたの経験豊富な洞察は大歓迎です。ありがとう。

4

4 に答える 4

6

これについては100%確信はありませんが、投稿してからかなり時間が経っているので、試してみたほうがいいかもしれません。コードで何か間違ったことをしているようです。コメント投稿者が言ったように、このエラーを返すコードを実際に投稿すると便利です。ただし、Android音声認識サービスのソースコードは次のとおりです。

http://source-android.frandroid.com/frameworks/base/core/java/android/speech/RecognitionService.javadispatchStopListeningリスニングプロセスを終了するように見える 関数があります。ただし、実際に終了する前に、次のような違法な状態のチェックがいくつかあります。

else if (mCurrentCallback.mListener.asBinder() != listener.asBinder()) {
            listener.onError(SpeechRecognizer.ERROR_RECOGNIZER_BUSY);
            Log.w(TAG, "stopListening called by other caller than startListening - ignoring");
        }

これは、最初に開始した以外の人がリスニングプロセスを終了しようとしていることを意味しているようです。これにより、このエラーが発生します。これがお役に立てば幸いですが、コードを投稿していただければ非常に有益です。

于 2011-05-14T22:29:56.053 に答える
0

ERROR_RECOGNIZER_BUSY は、SpeechRecognizer オブジェクトを既に使用している場合にスローされることがよくあります。(または、適切に閉じていませんでした)。

于 2014-06-20T12:31:20.903 に答える
0

ERROR_RECOGNIZER_BUSY の最も可能性の高い原因は、メイン スレッドから認識サービスを停止しておらず、スローされたエラーが無視されたことです。

于 2015-03-25T23:26:47.987 に答える