14

序章

Androidには、音声認識を使用する2つの方法があります。

最初の方法はIntent、この質問のように、インテントの例です。新しいActivityものがスタックの一番上にプッシュされ、ユーザーの話を聞き、スピーチを聞き、それを(通常はクラウド経由で)転記しようとし、onActivityResult呼び出しを介して結果をアプリに返します。

2つ目は、次SpeechRecognizerのコードのように、を取得することです:SpeechRecognizerの例。ここでは、スピーチが他のスレッドで録音および転記されているように見えます。その後、コールバックによって結果が表示されます。そして、これは私のを離れることなくActivity行われます。

音声認識を行うこれらの2つの方法の長所と短所を理解したいと思います。

私がこれまでに持っているもの

を使用してIntent

  • コーディングは簡単です
  • 車輪の再発明を回避します
  • デバイス全体で一貫した音声認識のユーザーエクスペリエンスを提供します

しかし

  • 独自のウィンドウで新しいアクティビティを作成するには時間がかかる場合があります

を使用してSpeechRecognizer

  • アプリでUIの制御を維持できます
  • 応答するものの追加の可能性を私に与えます(ドキュメント

しかし

  • メインスレッドからの呼び出しに制限されています
  • より多くの制御には、より多くのエラーチェックが必要です。
4

3 に答える 3

12

これらすべてに加えて、少なくともこの点を追加します。

SpeechRecognizerアプリは実際には「一致なし」などのエラー状態に応答し、場合によっては自動的に再起動するため、ハンズフリーユーザーインターフェースに適しています。を使用するIntentと、アプリはビープ音を鳴らし、ユーザーが続行するために押す必要のあるダイアログを表示します。

私の要約は次のとおりです。

SpeechRecognizer

  • 別のUIを表示するか、UIをまったく表示しません。アプリのUIをビープ音で鳴らしたいですか?エラーが発生したときにUIにダイアログを表示して、ユーザーがクリックするのを待ちますか?

  • 音声認識が行われている間、アプリは他のことを行うことができます

  • バックグラウンドまたはサービスからの実行中に音声を認識できます

  • エラーをより適切に処理できます

  • 生の音声やRMSなどの低レベルの音声にアクセスできます。その音声を分析するか、ラウドネスを使用して、アプリがリッスンしていることを示す何らかの点滅ライトを作成します

意図

  • 一貫性があり、ユーザー向けの使いやすいUI
  • プログラミングが簡単
于 2012-08-14T00:19:44.917 に答える
2

主な違いはUIです。SpeechRecognizer何も持っていないので、あなたはそれを作成する責任があります。
私は、ヘッドセットボタンを聞くための受信機を持っているプロトタイプを作成し、次に音声認識をアクティブにしていくつかのコマンドを聞くために使用します。画面がアクティブ化されなかったため、使用する必要がありましたSpeechRecognizer(UIは事前に録音されたサウンドとテキスト読み上げでした)。

2つ目の違いはSpeechRecognizer、常に聞く能力があることです。インテントバージョンは、一定期間後に常に厳密性を終了します。たとえばSpeechRecognizer、SMSを口述できるように、音声認識「キーボード」で使用されます。
このような場合、部分的な結果のみが表示されます(通常モードSpeechRecognizerでは最終結果のみが表示されます)。

于 2012-08-13T10:47:39.013 に答える
1

他の回答では言及されていないことが1つあります。デバイスに複数の音声認識機能がインストールされている場合、ユーザーがそれらを切り替えるのは、「インテント」またはSpeechRecognizerが使用されているかどうかによって異なります。

  • 「インテント」の場合、標準のアクティビティ選択ダイアログがポップアップ表示されます。ユーザーは、使用するレコグナイザーを選択し、オプションでデフォルトのレコグナイザーとしてグローバルに設定して、将来ダイアログを回避することができます。
  • SpeechRecognizerユーザーがグローバル設定(Language and input -> Voice recognizerICS上)でデフォルトの認識機能を設定および構成できる場合。

したがって、使用するインターフェースに応じて、デフォルトのレコグナイザーの設定とレコグナイザーの切り替えに関するドキュメントは異なるはずです。(ほとんどの場合、認識機能はGoogle Voice Searchだけですが、これは実際には大きな問題ではない可能性があります。)

于 2012-08-23T07:30:45.033 に答える