2014年4月6日日曜日

UnityとPerceptualSDKで音声認識

UnityとOculusでVR世界へ入り浸っていると、手元が見えないし、慣れてないコントローラ渡された時はボタン位置がわからなくて苦労します。

音声認識でボイスコマンドを活用すれば、VR世界の没入感も上がるし、キャラクターが声に反応してくれたらプレゼンスも上がっていいのではと思って、音声認識方法を探してみました。

Intel PerceptualSDKというのがあって、こちらがUnity対応しているので導入が楽そうです。
http://software.intel.com/en-us/vcsource/tools/perceptual-computing-sdk
元はIntelが出すカメラデバイスのためのSDKですが、カメラがなくても音声認識部分は使えます。

参考にさせていただいたサイト
http://izm-11.hatenablog.com/entry/2014/04/03/223114

intelのカメラデバイス以外のマイクを使うために、dllを作り直す必要があります。
VisualStudioExpressでやると、afxres.hがないというのでエラーが出ますが、リソースファイルを開いて
#include "afxres.h"→#include "winres.h" に変えると回避できるとか。
VisualStudioOnlineでProfessionalの体験版を取ってきてもいいです。

サイトを参考にして、自分の環境でdll作りなおして、サンプル持ってきて、音声認識をしても動きませんでした。
原因としては、録音デバイスが2つあると、動かないみたいです。
録音デバイスを使用するマイクだけにしたら音声認識するようになりました。
下記状態です。
コントロールパネル→サウンド→録音

音声認識のマイクで、品質が悪いと結構誤認識して変な言葉で帰ってきます。
自分はPS4付属マイク使っていましたが、ちゃんとしたのに変えたら結構認識が良くなりました。
SONY エレクトレットコンデンサーマイクロホン PC60 ECM-PC60

ガンダムSEEDの世界でラミアス艦長ごっことか、765プロの事務所でアイドル呼んでコミニュケーションとか、夢が広がりますね。

このガジェットでエラーが発生しました