web-dev-qa-db-ja.com

連続音声認識Android-ギャップなし

RecognitionListenerを実装するアクティビティがあります。継続させるために、onEndOfSpeech()のたびに、リスナーを再起動します。

speech.startListening(recognizerIntent);

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

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

それは何ですか?

ありがとう

11

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

スピーチデモ :ソースがあります ここ そして議論されます ここ そしてCLIで操作されます ここ

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

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

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

2
Robert Rowntree

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

一方、Pocketsphinxは本当に素晴らしい働きをします。ユーザーがデバイスに触れることなく、キーフレーズを見つけて、ロック画面の背後にある音声コマンドを認識するのに十分な速度です。そして、それはすべてこれをオフラインで行います。 デモ を試すことができます。

あなたが本当にグーグルのAPIを使いたいのなら、 これを見てください

5
Nana Ghartey

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

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);

これらはJellyBean以上では機能しなくなりましたが、ICS以下では機能します-意図したものかバグかはわかりません!

2
Mark Keen