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
目的のために使用することができると述べています。
なぜ音声認識システムの実際の動作は公式文書に記載されているものと異なるのですか?
さて、私は 'ACTION_RECOGNIZE_SPEECH'を使用しましたが、すべての追加機能が動作することを確認しました。しかし、私は 'ACTION_WEB_SEARCH'でいくつかの追加機能が利用できない理由を理解していません。おそらく、この動作の理由はこのタイプのインテントが結果を呼び出しアクティビティに返さないということです。 「EXTRA_LANGUAGE」余分な機能が働かないことに驚いています。デフォルト以外の言語を設定した場合、「今すぐ話す」ダイアログには指定した言語が表示されますが、話し言葉は認識されません。代わりに、 'ACTION_RECOGNIZE_SPEECH'インテントを使って' EXTRA_LANGUAGE'余分に動作します。 – enzom83
両方のインテントで同じ言語文字列が機能するはずです – gregm