11

を実装するアクティビティがありますRecognitionListeneronEndOfSpeech()継続的にするには、リスナーを再度開始するたびに:

speech.startListening(recognizerIntent);

ただし、開始するまでに時間がかかるため (約 0.5 秒)、この 0.5 秒のギャップがあり、何もリッスンしていません。だから、その時差で話された言葉が恋しい。

一方、キーボードの代わりに Google の音声入力を使用してメッセージを口述する場合、この時間のギャップは存在しません。意味 - 解決策があります。

それは何ですか?

ありがとう

4

3 に答える 3

5

CMUSphinxを使用して音声を継続的に認識することをお勧めします。Google 音声認識 API を使用して継続的な音声認識を実現するには、バックグラウンド サービスのループに頼る必要がある場合があります。これは、リソースを大量に消費し、デバイスのバッテリーを消耗します。

一方、ポケットスフィンクスは非常にうまく機能します。ユーザーが自分のデバイスに触れなくても、キー フレーズを見つけて、ロック画面の背後にある音声コマンドを認識するのに十分な速さです。そして、これはすべてオフラインで行われます。デモを試すことができます。

本当にGoogleのAPIを使いたい場合は、これを参照してください

于 2015-05-17T16:49:10.467 に答える
2

次のようなオプションがあります。

intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000); // value to wait

また

intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000);

これらは Jelly Bean 以降では動作しなくなりましたが、ICS 以下では動作します - 意図したものなのかバグなのかは不明です!

于 2015-05-17T01:44:10.853 に答える
2

他のいくつかのAPIを見てみてください....

音声デモ:ここにソースがあり、ここで議論され、ここで CLI で操作されます

全二重のGoogle APIを使用できます(そのレートは1日あたり50に制限されています)

または、その一般的なアイデアが気に入った場合は、ここで説明されている ibm のワトソンを確認してください

IMO - より複雑ですが、上限はありません。

于 2015-05-17T19:07:49.587 に答える