Kinect SDK v1.6のサンプル「Speech Basic-WPF」を見てたら、カメの代わりに近藤科学の多脚ロボットKMR-M6を動かしてみたくなった。
ということで、「Speech Basic-WPF」のソースを見てみる。
これでKMR-M6を動かすようにするのはそんなに難しくないな。
このSpeechRecognized関数にKMR-M6との通信を追加して、音声コマンドに対応するモーションを再生するようにすればいい。
とりあえず日本語を認識するように改造しよう。
ここを参考に「Speech Basic-WPF」の日本語化、簡単にできた。
・Kinect for Windowsで機器を作るヒント(4) ―― 日本語の音声認識をやってみる
音声合成も簡単にできるみたいだ。ついでにkinectの音声認識と組み合わせてみる。
ここを参考にさせていただいた。
・Speech Platform 11 で音声合成をする - かおるんダイアリー
Kinectで音声認識したものを音声合成で復唱するようにしたら、それをまた音声認識して無限ループに陥る。orz
音声認識を一時的に無効にできないかな。
-> とりあえず、音声コマンドと復唱する音声を別にすることで回避。
[例] 音声コマンド:まえ -> 復唱:ぜんしん
復唱の音声(ぜんしん)も音声認識辞書に登録しておく。
復唱の音声を認識したときは、それに対する処理は何もしない。
(後日色々試した結果、タイマーを使って一定時間音声認識結果を無視する様にした方が簡単だった。)
以上でKinectの音声認識機能を使って、近藤科学の多脚ロボットKMR-M6を動かせるようになった。
Kinect SDKのサンプル「Speech Basic-WPF」にKMR-M6との通信を追加しただけ。簡単だった。
KMR-M6との通信はここが参考になる。
問題点:ロボットの動作音で時々音声認識が誤認識する... 音声認識の閾値を調整すればある程度は改善できるかな。
動画はこちら。
Kinectの音声認識機能を使って、多脚ロボットKMR-M6を動かしてみた。
音声認識機能を使って、KMR-M6を動かすのは意外と簡単に出来たから、今度はこれにフェイストラッキングを組み合わせてみる。
まず、以前作ったフェイストラッキングに、 音声認識 と音声合成を追加した。
次は、これでKMR-M6を動かす。
Kinect SDKの音声認識機能とフェイストラッキングで、KMR-M6の制御ができるようになった。
・音声認識機能でロボットの歩行制御。
・フェイストラッキングで、搭載しているWiFiカメラのPan,Tilt制御。
童画はこちら。
Kinectの音声認識とFacetrackingで多脚ロボットを動かしてみた
-以上―