2012-03-22 17 views
0

android.speechパッケージがどのように動作しているのかを調べていて、目的で使用されているほとんどの追加機能が音声認識プログラムによって無視されていることに気付きました。ACTION_WEB_SEARCH RecognizerIntentの利用可能なオプション

  • 私は余分なRecognizerIntent.EXTRA_LANGUAGEを使用して言語を設定した場合、指定した言語は無視されますが、デバイスのデフォルトの言語は常に使用されます。
  • RecognizerIntent.EXTRA_PROMPTを使用してテキストを設定すると、このテキストは表示されません。
  • IはstartActivityForResult方法を用いた音声認識活動を開始した場合、その後、音声認識はonActivityResultを呼び出したが、第二引数(resultCode)は常にRESULT_CANCELEDであり、第3引数(データIntent)は常にnullあります。この動作は、おそらく、このタイプのインテントの目的がWeb上で検索を実行することであると考えられます。同じ理由で、RecognizerIntent.EXTRA_MAX_RESULTSを使用して最大結果数を設定すると、指定された値は無視されます。

私はこの動作を見つけましたが、official documentationは、これらのオプションはまた、ACTION_WEB_SEARCH目的のために使用することができると述べています。

なぜ音声認識システムの実際の動作は公式文書に記載されているものと異なるのですか?

答えて

1

あなたは間違った行動をしていると思います。 ACTION_WEB_SEARCHの代わりにACTION_RECOGNIZE_SPEECHを使用してください。

あなたがそうした場合、onActivityResultは期待通りに動作し、あなたのアクティビティは認識結果の解釈を制御します。

ちなみに、ACTION_WEB_SEARCHを設定すると、結果の処理をAndroidに委譲します。ユーザーの言うことに基づいて、Androidがウェブブラウザを起動したり、メールを開始する可能性があります(ユーザーが「メール」と言った場合)。このため、あなたのアクティビティは有用な情報を受け取ることはできませんが、RecognizerIntent.EXTRA_LANGUAGEを考慮に入れてください。

+0

さて、私は 'ACTION_RECOGNIZE_SPEECH'を使用しましたが、すべての追加機能が動作することを確認しました。しかし、私は 'ACTION_WEB_SEARCH'でいくつかの追加機能が利用できない理由を理解していません。おそらく、この動作の理由はこのタイプのインテントが結果を呼び出しアクティビティに返さないということです。 「EXTRA_LANGUAGE」余分な機能が働かないことに驚いています。デフォルト以外の言語を設定した場合、「今すぐ話す」ダイアログには指定した言語が表示されますが、話し言葉は認識されません。代わりに、 'ACTION_RECOGNIZE_SPEECH'インテントを使って' EXTRA_LANGUAGE'余分に動作します。 – enzom83

+0

両方のインテントで同じ言語文字列が機能するはずです – gregm

関連する問題