音声認識による3Dコントロールを作ってみました

  1. エンジニアブログ

こんにちは、開発本部の0009です。
今回は音声認識による3Dコントロールを作ってみました。

↓[VR] ボタンを押してみてください
↓画面左下に[音声認識]ボタンとスライダーが現れると思います
↓[音声認識]ボタンによって音声認識による3Dコントロールが開始できます
↓対応している環境では, マイクの共有が求められます

音声認識による3Dコントロールは、8種類作ってみました。
それぞれ次の言葉が認識されたときに作動します。
・3Dモデル移動(7種類) : [上][下][左][右][前][奥][中 or 戻れ]
・ファン回転(1種類):[羽 or 回れ]
作動時の変化量は、スライダーで調整できます。
音声認識結果を右上の窓に、音声認識APIの状態を左上の窓に出しています。
左上の窓に speechstart が表示されている時、音声が発話中であると認識されています。

最近のWebブラウザには、音声認識(Web Speech APIのSpeech Recognition)が標準で搭載されているものがあります。
昔から、WebブラウザではMIDIファイルやMP3ファイルの再生ができました。
これと同じ感覚で、音声認識をWebサイトに組み込めるようになろうとしているのです。
2018年7月現在、対応が進んでいるのはChrome(iOSを除く)です。

認識結果の傾向としては、地名として認識されがちでした。例:左->日田,飛騨
同じChromeであっても、OSや機種で認識結果や結果が出るまでの時間に差がありました。
特に、Androidでは認識性能がPCより見劣りしました。
なお、Chromeの中でもiOS版で音声認識が使えない理由は、エンジンがsafariだからだそうです。[出展]

工夫したところは、発話予測をしているところです。簡易的ではありますが。
音声認識は、文章全体のバランスから自然な文章となるように修正を重ね、最終的な認識結果を決めます。
このため、短い文章の認識であっても、認識結果が得られるのは発話終了後に少々経ってからになります。
この待ち時間を改善する方法として、簡易的な発話予測をしています。
3Dコントロールの種類の確定は、他の種類と判別できる途中経過に達した時点で可能です。
例えば、[左]:「ひだり」では、「ひ」、「ひだ」まで認識できれば、[左]としても良いでしょう。
幸いにもWeb Speech APIのSpeech Recognitionは、予測の途中経過が取得できます。
この点で、工夫しがいのある音声認識のAPIであると思いました。

苦労したところは、声を潜めての動作確認がやりづらかったところです。
周囲に迷惑にならぬよう、声を潜めての動作確認をせざるを得ないことも多々ありました。
Androidで機種に顔を近づけたところ、OSに搭載されている音声認識が起動してしまいました。
スマートフォンが搭載しているセンサの多彩さを再確認しました。


<参考にした記事>
Web Speech API
Can I use Speech Recognition
Web Speech API Demonstration
Web Speech APIで途切れない音声認識
Chromeの音声認識について調べてみた
音声認識入門!Web Speech APIを使いChromeブラウザを音声操作するWebアプリ開発術を公開!
Web Speech Recognition APIを利用した音声認識について教えてください。

ラティス・テクノロジー株式会社のエンジニアです。2016年度新卒入社。
主にTP製品 (Excel帳票出力など) の開発担当をしています。
音のディジタル信号処理で博士(工学)を取得しました。
博士課程にて大量かつ正確にデータ処理する面白さに目覚め、
音信号の1次元の世界から3次元の世界に飛び込んできました。
近年は、子育てとのワークライフバランスのSDGsに邁進しています。

記事一覧

関連記事

第1開発グループの毎日

こんにちは,XVL開発本部 第1開発グループ所属,m-takahashi です.「ラティスでの開発グループってどんな所なんだろう?🤔」と疑問に思う人に向けたブログを書き…

XVLとはどんな技術か?②

前回に引き続き、技術者目線でXVLについてご紹介します。今回のテーマは「XVLはなぜ軽くできるのか?」です。形状データの軽量化いきなりディープな内容になるのも…