Google Chromeのベータ版にのっているWeb Speech APIをつかってみたよ。最近はブラウザでなんでもできるけどここまでやるとはね。
Web Speech APIでできること
Web Speech API Specificationによると、音声認識と音声合成が簡単に扱えるAPIのようす。Chrome 25のベータ版では、音声認識のみ実装しているようです。
認識精度がけっこういいのだ
まずはGoogleのデモアプリで遊んでみる。はっきりとしゃべる分には、けっこう正確に認識してくれる感覚。例によって宇多丸と歌丸を使い分けるぞ!
この音声認識も、Siriよろしくどっかのサーバで解析して結果を返してもらっている様子。ネットワークを切った状態で認識ボタンを押すと、マイクを起動しにいった直後に切ってしまい、音すら拾ってくれません。また、ローカルでもきちんとWebサーバを立てて、HTTPで開いていないとダメみたい。file://ではマイクすら立ち上げません。なかみはXHRをつかっているのだろうか。
イベントのトリガが豊富
仕様の5.1.3節にイベントいちらんが列挙されています。基本的にはonresultで、認識した結果を使うのだろうけど。onspeechendとかを使うと、解析結果はどうでもいいから声があったことだけ使いたいってときに使えそうです。2コンに向かってなんでもいいから叫ぶアレのエミュレートとか。
さいごに
Web Audio APIとかみたいに、内部でがっつりコードが動いているわけではなく、認識も生成も外部サーバのクライアントとしての立ち位置みたい。外部サーバも任意に指定できるっぽいので、SiriProxyがわりに使っちゃうこともできるんじゃないだろうか。iPhoneのWebKitに載るのは当分先だろうけど、楽しみ。