githubにソースあり
やっていること
- 指定秒数間の音声をマイクから拾ってwavにする
- wavをflacにする
- APIを使いGoogleに問い合わせる
- 結果が返ってくる
- 結果から最適であろう音声認識テキストをブロックへ返す
事前事項
- ruby2である事
-
arecord
flac
コマンドがあること
元々 Raspberry Piで使うために作ったので、OSXではarecord
が無いので使えません
代わりにsox
を使えば出来そうですが、確認していません - SpeechAPIを使うために、まず https://console.developers.google.com でプロジェクトを作る
- Speech APIを有効にする
- デフォルトではこのAPIは表示されないのでhttp://www.chromium.org/developers/how-tos/api-keys を読む
- chromium-devグループに参加する とSpeech APIが使えるようになるので、メール受信なしでいいので参加する
- google developer コンソールに戻ってSpeechAPIを有効にする
- ブラウザキーを作る
- 認証情報リンク
- 認証情報を追加
- APIキーを選択
- ブラウザキーを選択
- キーが発行
注意事項
API
- このAPIは実験段階のようで、1日のアクセス制限は50回程度のよう
- 1回の音声変換は10-15秒が最長のよう
gem
#speech_to_text
は音声が届いている間をテキストにするのでは無く、指定秒数の音声のみを拾います。
#speech_to_text
は指定秒数間程度、完全にスレッドが同期ブロックされます。非同期にしたいなら、別スレッドを作ってその中で実行するなどの工夫が必要です。