Web Speech APIを使ってみる

0 件のコメント
Google ChromeでJavaScriptを使った音声認識ができるので、試してみました。
Web Speech APIというのを使いますが、これは結構前から実装されています。

仕様はこちらに載っていますが、W3C標準ではありません。
https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html

各ブラウザへの実装状況はこちらです。(赤はサポートしてない)
図. Web Speech API対応状況
※ 最新はリンクから確認してください
http://caniuse.com/#feat=web-speech

サンプル

このAPIを使うと、音声解析とテキストの読み上げを実現することができます。
サンプルは下記のコードです。(楽だったのでKnockout.js)

使い方(今年、1回でもアップデートしてるGoogle Chromeなら動くはず)
1. 「録音開始」ボタンを押す
2. マイクへのアクセス許可をします(ページ上部に確認が出る)
3. 「開始前」から「録音スタート」と文言が変化するので、適当に喋ってみる
4. 「録音開始」ボタン下部に喋った内容と「読み上げる」というボタンが表示される
5. 「読み上げる」ボタンを押すことで、喋った内容が読み上げられます
※ 間隔を空けながら喋れば、喋った内容の文字が繋がらず、下にどんどん追加されます。

ちなみに…

var recognition = new webkitSpeechRecognition();
recognition.start();
上記を実行した後のイベントは、下記で制御できます。

onstart: 音声認識サービスのスタート時に発生。
onend: 音声認識サービスが切断したときに発生。onstart後に発生するイベント。
onaudiostart: オーディオをキャプチャするために開始したときに発生。
onaudioend: オーディオをキャプチャを終了したときに発生。onaudiostart後に発生するイベント。
onsoundstart: いくつかの音が検出されたときに発生。クライアント側の検出器を用いることによって、低レイテンシで生成される。(静かな環境で何も喋らないと、発生しないイベントでした)
onsoundend: 音が検出されないときに発生。onsoundstart後に発生するイベント。
onspeechstart: 音声認識のために使用される音声が開始されたときに発生。
onspeechend: 音声認識のために使用される音声が終了したときに発生。onspeechstart後に発生するイベント。
onerror: 音声認識サービスのエラーが発生したときに発生。SpeechRecognitionErrorのインターフェイスが返却される。
onresult: 音声認識サービスが結果を返すときに発生。SpeechRecognitionEventのインターフェイスが返却される。
onnomatch: 音声認識サービスは、信頼閾値を満たさないときに発生。

おわりに

これ、もっと精度が上がるか、精度を上げるような仕組みをちゃんと入れるか、テキスト解析APIに投げつけるかとか、色々応用することができそうです。
WebRTCと一緒に使ってウンヌン…とかもできそう。

以上!

0 件のコメント :

コメントを投稿