人工知能第一研究室

 
KINECTによるLEGOマインドストームの音声入力制御 その2

 Kinectから取得できる音声データを利用して、ロボットの音声操作を行っています。基本的な流れは前回のシステムと同じです。新たに追加した機能はロボットからの音声応答です。それに伴い、ちょっとした会話を行えるようになりました。このシステムは大分大学のオープンキャンパスでデモで紹介したものです。紹介映像をご覧ください。オープンキャンパス用の設定になっているので、少し会話内容がおかしなところがあるかと思いますが、ご了承ください。

 前回と同様に使用しているロボットはレゴ社が発売している教育用ロボット「LEGO MINDSTORMS NXT」です。NXTの制御には「NXT.NET for LEGO MINDSTORMS」を使用しています。

■ロボットの操作概要

 今回、会話機能を追加するに当たり、誤認識を少しでも減らすためにモード別に機能を限定しました。用意したモードは2つで、対話モードと移動モードです。対話モードは、主に会話をするモードです。対話モードの例を図1に示します。このモードでは「こんにちは」、「自己紹介して」などの計9個の発声に対応します。誤認識し、どのコマンドにも対応できなかった場合は「なんでやねん」と言うようにしています。これはユーザからの想定していない発声に対応するためになにを言われても対話が成り立つような言葉を選択しました。移動モードは、前後左右の移動と新しく回転する動作を加えたロボットを操作するモードです。移動モードの例を図2、2つのモードのコマンド表を図3に示します。この機能は前システムでもあった機能なので説明は省きます。違いはロボットからの音声発話と感情を表すための動作を加えたところです。

それぞれのモードが独立しているわけではありません。必要に応じてモードの切り替えができるようになっています。モードの変更は音声コマンドにより行います。対話モードの時には「移動して」と発声すると移動モードへ、「もういいよ」と発声すると対話モードに移行します。なお、今回はロボットの性能の関係でロボットからの音声はスピーカーを通して行っています。

対話モード時のシステムの動作例

図1 対話モード時のシステムの動作例

移動モード時のシステムの動作例

図2 移動モード時のシステムの動作例

コマンド表

図3 ユーザの使用するコマンド表

■ロボットのシステム概要

 システムの構成を図4に示します。今回も前回と同様にマイクにはKinectを使用しています。Kinectから録った音声データをコンピュータで処理して文字列にします。出力された文字列を対話処理システムに送り「元気?」とユーザが発声したと認識すれば、対応する文字列である「元気です」に変換します。対応する文字列はそれぞれロボット制御システムと音声ファイル選択システムに送られます。ロボット制御システムでは文字列をモータパワーに、音声ファイル選択システムでは文字列を音声ファイルに変換しています。そして、モータパワーはロボットにbluetoothを介して送られロボットが動作します。音声データはそのままコンピュータで再生されスピーカーを通して再生されます。以上がシステムの大まかな流れとなります。音声ファイルがあらかじめ音声合成ソフトを使用して作成しています。使用しているソフト類は音声認識気にはJulius、音声合成ソフトはCeVIO Creative Studio FREEを用いています。

対話ロボットのシステム概要

 図4 音声対話システムの概要図

 

<参考文献>

・NXT.NET for LEGO MINDSTORMS (http://nxtnet.codeplex.com)

・Julius (http://julius.sourceforge.jp)

・CeVIO Creative Studio FREE (http://cevio.jp/)