音声認識と音声録音の同時利用について

610 views
Skip to first unread message

T.O

unread,
Dec 5, 2013, 1:01:21 AM12/5/13
to android-...@googlegroups.com
Androidアプリケーションの開発を行っているT.Oと申します.音声認識と音声録音の同時利用に関して質問させていただきます.

現在Androidでノンバーバルな情報を考慮した簡単な音声対話ができれば面白そうだと思い,音声対話アプリケーションを開発しています.

具体的に私が行いたいこととしては,認識開始と同時に録音も行い,認識結果が返ってきたときに録音したデータを用いて何かしらの制御
(例えば,ユーザーの発話終了からシステムが応答するまでの間の時間など)をするということです.これに関して様々な方法を試してみた
のですが,同時に利用するということができませんでした.試してみた方法は以下の通りです.

<RecognizerIntentクラスとAudioRecordクラスの利用>
認識開始 → 録音開始 または 録音開始 → 認識開始で試してみましたが,
・Error running recognition:STATUS_STREAM_BROKEN
・onError
というエラーが表示され,認識がすぐに終了しました.恐らくですが,オーディオ関連で競合が発生しているのではないかと考えています.

<SpeechRecognizerクラスとAudioRecordクラスの利用>
認識開始 → 録音開始 または 録音開始 → 認識開始で試してみましたが,
・Error running recognition:STATUS_STREAM_BROKEN
・onError
というエラーが同じように表示されました.これに関しても競合が発生していると考えています.ただ,録音はどうにかできているという状態でした.
どうやら認識と録音を同時に行った場合,認識側が潰されて録音側が優先されるみたいです(私の考察ですが).

<RecognitionListenerの実装>
こちらは認識と同時に録音するというより認識しながら音の大きさ(rms値)を取得するという形式でした.試してみたところ,認識しながら音の大きさを
取得することはできていました.しかし,データを取得する間隔が焼く50[ms]であり,あまり有用ではありませんでした.ちなみに,AudioRecordクラスを
使用した場合のデータを取得する間隔は約10[ms]でした.

以上のことから,同時に利用する方法はないかということで悩んでいます.もしかすると,元々同時に利用することは不可能なのではないかとも考えています.
不可能だとわかれば,それならそれでまた別の方向で発展させていこうと考えているので構いません.ただ,通話録音などのようなアプリケーションも存在しており,
それなら認識と録音もできるのではという気がして諦めきれないのが現状です.

できるならできる,できないならできないではっきりさせたいです.どなたかご存知の方がおられましたら教えていただけないでしょうか.

以上,よろしくお願いいたします.
Reply all
Reply to author
Forward
0 new messages