続けてもう一つ、別の事をしてみました。
あまり飛ばし過ぎると後が続くか不安ですが、モチベーションのあるうちに進めちゃいます。
次はお遊び枠でこっちを実施しました。
・【HoloLens開発】ユニティちゃんとHoloLensで戯れる - 音声認識編 -
http://bril-tech.blogspot.jp/2016/10/hololens-speechrecognizer.html
試して気付きましたが、以下のチュートリアル#4の技術を含みます。当然か。
・HOLOLENS 音声認識での操作 VOICE
https://azure-recipe.kc-cloud.jp/2016/12/hololens-tutorial4/
HoloToolkit-Unityはここだけだと利点が薄そうなので保留しました。
他の技術で必要が出てきたらまた使ってみます。
・HoloToolkit-Unity を使う
http://www.naturalsoftware.jp/entry/2016/06/22/170925
さてさて、サンプルコードはあるので特に問題なく音声認識できました。
「Next」と拙い英語ながら話してみると…。
ポーズが変わりました。
今回のアプリではHOLOGRAPHIC REMOTINGを使うと音声認識ができませんでした。
HOLOGRAPHIC REMOTINGではカメラのトラッキングはフィードバックされるけど、音声はフィードバックされない?
この件についてはより複雑なアプリに挑むときに解決方法がないか調べることにします。
さて、今回のプロジェクトで重要なのは以下のコード。
・KeywordRecognizer keywordRecognizer = null;
- UnityEngine.Windowsで提供される音声認識クラス
・Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();
- キーワード登録用辞書クラス
・keywords.Add("Next", () => { this.BroadcastMessage("OnNext"); });
- 辞書にキーワードとキーワードに対応する処理を登録
("Next"のキーワードで"OnNext"関数を呼び出し)
・keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());
- 辞書をKeywordRecognizerに登録
音声認識に必要な設定は以上。
後はKeywordRecognizerをスタートさせれば音声から辞書のキーワードを解析し、キーワードに合った処理を実行してくれる。
Unityって音声認識まで提供してくれているんですね。(厳密にはWindowsのライブラリへのアクセス?)
音声認識となるとhololens依存の実装が必要かなぁと構えていましたが、これまた不要でした。
確かに今時のゲームは音声認識のものもあるから既に提供されていても不思議はないのか。
今から10年ほど前、HSPという言語でゲームを作って以来…ここまでゲーム作成ツールが進化していたとは知りませんでした。
浦島太郎にでもなった気分です。
というか、もうゲーム作成ツールなんて括りじゃない。普通に優れた3Dアプリの開発環境です。
以下のページを見るに、日本語も認識可能な模様。うへぇ。
・VRアプリで使える音声コマンドを簡単に実装してみる
http://qiita.com/decchi/items/c9ae04b049ace49f91bc
hololens以上にUnityの凄さを感じた一件でした。