PresentationRTS
Simple Wiki Based Contents Management System
ソフトウェア関連 >> RTMコンテスト >> PresentationRTS

音声認識でパワポ、ムービーを制御

概要

このシステム例は、KINECTコンポーネントを用いた音声対話によるプレゼンテーションシステムを構築したものです。
このプレゼンテーション機能は、2004年に作成したMS Officeのパワーポイントと動画ビュアーをDCOM経由で制御するソフトウェアを組み合わせたものです。
このシステムのコンポーネント構成を下図に示します。

また、プレゼンテーションを行うRTCに関しては、2012年のRTMコンテストで佐々木氏による作品がありますが、eSEATを用いることで、比較的容易に同じようなシステムを構築することができます。

動作環境と必要なハードウェア、ソフトウェア

このシステムでは、プレゼンテーション用ソフトウェアを使います。このソフトウェアは、DCOM経由でPowerPointとMoviePlayerを操作します。そのためこのシステムの動作には、PowerPointとムービープレーヤーが必要ですし、Windows7以降のOSが必要になります。
ただし、2012年のRTMコンテストの最優秀賞の佐々木氏によるプレゼンテーション用コンポーネント群を利用する場合には、Linux等のOpenRTM-aist-1.1が動作する環境で動作すると思います。
また、音声認識を使うためには、マイクロホンなどの音声入力装置が必要です。
以下に、本システムで利用するハードウェアとソフトウェアを記載します。
ハードウェア
ソフトウェア
  • 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