音声認識でパワポ、ムービーを制御
概要
このシステム例は、KINECTコンポーネントを用いた音声対話によるプレゼンテーションシステムを構築したものです。
このプレゼンテーション機能は、2004年に作成したMS Officeのパワーポイントと動画ビュアーをDCOM経由で制御するソフトウェアを組み合わせたものです。
このシステムのコンポーネント構成を下図に示します。
また、プレゼンテーションを行うRTCに関しては、2012年のRTMコンテストで佐々木氏による作品がありますが、eSEATを用いることで、比較的容易に同じようなシステムを構築することができます。
動作環境と必要なハードウェア、ソフトウェア
このシステムでは、プレゼンテーション用ソフトウェアを使います。このソフトウェアは、DCOM経由でPowerPointとMoviePlayerを操作します。そのためこのシステムの動作には、PowerPointとムービープレーヤーが必要ですし、Windows7以降のOSが必要になります。
ただし、2012年のRTMコンテストの最優秀賞の佐々木氏によるプレゼンテーション用コンポーネント群を利用する場合には、Linux等のOpenRTM-aist-1.1が動作する環境で動作すると思います。
また、音声認識を使うためには、マイクロホンなどの音声入力装置が必要です。
以下に、本システムで利用するハードウェアとソフトウェアを記載します。
''ハードウェア''
- Windows7以降のOSが動作するPC(Windows8以降では32bits VC2010ランタイムライブラリが必要です。)
- 音源入力デバイス
- マイクまたはKINECT
''ソフトウェア''
- OpenRTM-aist 1.1.0
- OpenHRI
- KinectRTC(KINECTを音声入力に利用する場合)
- MS PowerPoint 2003以降
- Windows Media Player
- 本ページに添付されているアーカイブ
コンポーネント構成
本システムの一般的な音源を使った場合のコンポーネント構成を下に示します。
また、本システムで使用するコンポーネントは、以下のようになります。
- PortAudioInput :OpenHRIに含まれています
- JuliusRTC :OpenHRIに含まれています
- eSEAT :OpenHRIに含まれているSEATでもOKです。
KINECTを音声入力デバイスとして利用する場合には、PortAudioRTCの代わりにKinectRTCが必要です。KinectRTCを使う場合には、下記の様な構成になります。
起動手順
次に、本システムの起動手順について説明します。Windows8以降の場合には、VC2010の32ビット版のランタイムパッケージが必要になりますので、インストールしてください。
KinectRTCを使う場合には、KInect for Windows SDKまたはRuntimeパッケージをインストールしてください。次に、RTコンポーネントを使うために、ネームサーバーとRTシステムエディタを起動します。RTシステムエディタは、JavaVMが必要ですので、OracleのJREまたはOpenJDKをインストールしておきます。
次に、このページに添付されているアーカイブをダウンロードし、適当なフォルダに展開してください。
このシステムの起動用バッチファイルは、
- ''0 SpeechDemo'' : PortAudioInputを使った音声認識バージョン
- ''1 KinectSpeechDemo'' : KinectRTCを利用した音声認識バージョン
に入っています。バッチファイルの起動順ですが、先頭が 0 から始まるバッチファイルが起動時に利用するもの、先頭が 1 から始まるバッチファイルは終了時用になっています。えく
そのため起動時には、
- 01 StartDemo.bat :コンポーネントとアプリの起動
- 02 ConnectAll.bat :コンポーネント間のリンク作成
- 03 ActivateAll.bat :コンポーネントのアクティベーション
の順に実行してください。
操作の詳細
上述の手順で、すでに音声認識機能が有効化しています。このシステムでは、6つの状態が存在し、各モードで有効な音声コマンドが異なります。音声コマンドは、SEATのスクリプトファイルを参照していただければよいのですが、下記に各モードで有効な命令を記載しておきます。
''パワポ操作モード(ppt_mode)''
命令 | 動作 |
---|---|
リスト | パワポリスト操作モードへ移行 |
実行、再生 | 選択しているファイルを投影し、パワポスライド操作モードへ移行 |
ビデオ、ビデオプレーヤ | ビデオ操作モードへ移行 |
''パワポリスト操作モード(ppt_list_mode)''
命令 | 動作 |
---|---|
スライド | パワポ操作モードへ移行 |
1番目、2番目、…、10番目 | リスト内のファイル選択 |
オープン | 選択したファイルを開いて、パワポ操作モードへ移行 |
''パワポスライド操作モード(ppt_run_mode)''
命令 | 動作 |
---|---|
終了 | プレゼンを終了し、パワポ操作モードへ移行 |
次へ、次ののスライド | 次のスライドへ移動 |
前へ、前ののスライド | 前のスライドへ移動 |
最初のスライド | 最初のスライドへ移動 |
最後のスライド | 最後のスライドへ移動 |
''ビデオ操作モード(video_mode)''
命令 | 動作 |
---|---|
スライド | パワポ操作モードへ移行 |
再生 | 選択したファイルを再生して、ビデオ再生操作モードへ移行 |
''ビデオリスト操作モード(video_list_mode)''
命令 | 動作 |
---|---|
ビデオ、ビデオプレーヤ | ビデオ操作モードへ移行 |
1番目、2番目、…、10番目 | リスト内のファイル選択 |
オープン | 選択したファイルを開いて、ビデオ操作モードへ移行 |
再生 | 選択したファイルを再生して、ビデオ再生操作モードへ移行 |
''ビデオ再生操作モード(video_list_mode)''
命令 | 動作 |
---|---|
停止、ストップ | 再生を終了して、ビデオ操作モードへ移行 |
一時停止 | 再生を一時停止して、ビデオ操作モードへ移行 |
全画面 | 全画面で再生する |
巻き戻し | 現在再生している動画を巻き戻す |
早送り | 現在再生している動画を早送りする |
また、上の状態を表すSEATの状態遷移図は、下のようになっています。
その他の応用システム
前述まで音声認識によるプレゼンテーションのシステム構成について述ばました。このシステムでは、eSEATに接続するコンポーネントを変更することで、簡単に以下のシステムを構築することができます。
- KinectRTCを用いた音声とジェスチャによるプレゼンテーション(下にコンポーネント構成図を添付)
- SUITを用いた簡易パネルによるプレゼンテーション
- Wiiリモコン(Wii fit)を用いたプレゼンテーション
などです。通常は、操作対象であるロボットの関節角を出力するRoborMotionRtcやHunoRtc,GRobotRTCなどを使うこともできます。こちらの方の起動用バッチファイルは、''2 KinectDemo''に入れております。
添付ファイル:OpenHRI-Demo.zip