
2014 年 3 月 26 日、Twilio API 勉強会 Vol.14 を「音声認識エンジン Amivoice」とのコラボで開催しました。
今まで様々なアイデアソンやハッカソン、日本のお客様から音声認識に関する問い合わせを頂きました。みなさんのご関心度の高い音声認識エンジンをテーマにし Twilio API 勉強会を開催致しました。
人の音声を認識し、テキストに変換させる機能でいろんなアイデアや可能性を参加者のみなさんと感じることができました。
音声認識エンジン Amivoice

音声認識エンジン Amivoiceとは?
人の音声を認識し、テキストに変換してくれます。
そこで Amivoice の強みはやっぱり技術力。あらゆる人、言葉、会話スピードに対応されているぐらいハイクオリティーの能力をもっています。
音声認識機能は Twilio にも搭載されていますが、今現在英語のみ対応されており、日本ユーザーのみなさんから沢山の問い合わせを頂いている機能です。
今回、アドバンストメディア様提供の「Amivoice」と Twilio のコラボでみなさんへのお答えができたのではないかと思います。
ハンズオンのゴール

- Twilio 番号 ( 050 ) に電話をかける。
- アナウンスが再生される。
- Twilio の録音機能より発信者の発話を録音。
(例えば、Twilio 事業部 API 担当)
- 録音されたファイルを使ってAmivoiceを呼び出す。
- Amivoice が音声を認識し、テキストを読み上げてくれる。
もしくは音声を認識し、担当に電話繋ぐ。
ソースコード
Amivoice-Sample-twilio-record.php
まず、着信処理をTwilio側に設定します。
下記の TwiML を作成することによって電話番号( Twilio電話番号 050 )への着信がある際にアナウンスを再生し録音を行います。
6 行目:<Say> 動詞よりテキストを音声に変換します。(電話にてテキストを読み上げてくれます)
7 行目:<Record> 動詞より電話による録音を行います。
<Record> 動詞に設定されている「action」は指定されているファイル ( recorded.php ) に録音終了後の処理を遷移させます。
着信 ( incomming ) 設定については下記のページをご覧ください。
Twilioで着信をためしてみましょう。(IVRを簡単に実装できます。)
recorded.php
Twilio から録音された音声ファイルを設定し、Amivoice を呼び出します。
これによって Amivoice より音声が認識され詳細の処理を行います。
音声 → テキスト
ソースの 11 行に $result を Twilio の動詞 <Say> に設定し、読み上げ処理をさせます。
<Say> 動詞はテキストを音声に変換する動詞でテキストのみを認識します。
ここで正常に処理が実行されるということは音声が Amivoice よりきちんとテキスト化されたということを意味します。
Twilioの録音 : <Record>
https://jp.twilio.com/docs/api/twiml/record
Twilio を使って録音を行いますと、録音された音声ファイルの URL が発行されます。
Twilio は録音完了後、録音ファイルの URL を「RecordingUrl」に設定し、POST します。
ソースコードの 7 行目が録音ファイルの URL を取得する部分です。
dialer.gram
今回の勉強会ではこの dialer.gram の中に予めテキストを用意し、認識された音声から選択されるデモを試してみました。
もちろん、Amivoice の製品によって dialer.gram にテキスト登録無しで使えるサービスも提供されています。