5 Galatea DM サブモジュール

Galatea DMに同梱されているサブモジュールについて説明する.これらは,Perl, Ruby, Javaで記述されており,改変は容易である.

Galatea DMはこれらの追加サブモジュールを利用している.Galatea DMの更新に伴って,追加サブモジュールも変更が行なわれる.

5.1 AM-MCL サブモジュール

Galatea DMのAM-MCLはRubyにより独自に実装されている.(Modules/AM-MCL.rb)

Perl版のAM-MCLと同等のset Speak命令がVoiceXMLのprompt要素などで使用される.

また,以下の命令が拡張されており,Galatea VoiceXMLのnative要素で使用できる.

 to @AM-MCL set AutoEmotionSpeak = 1
 to @AM-MCL set AutoMove = 1
 to @AM-MCL set AutoGaze = 0
 to @AM-MCL set Mask = woman01 HAPPY 100 0 0 0

5.2 FS-MCL サブモジュール

Galatea DMのFS-MCLは複数の種類のエージェントの顔や背景の種類,連続的な動きなどを情報を管理するサブモジュールであり,Javaで実装されている.

 $ java -cp ../lib/gdm.jar galatea.BehaviorManager -c ./gdm.conf

以下の命令が用意されており,Galatea VoiceXMLのnative要素で使用できる.

 to @FS-MCL set Background = man02 bg1
 to @FS-MCL set Mask = man02
 to @FS-MCL set HeadMoveRatio = 1.0 1.0
 to @FS-MCL set Emotion = FEARED 30
 to @FS-MCL set Rot = -2 -1 0
 to @FS-MCL set EmotionNow = FEARED 30
 to @FS-MCL set RotNow = -2 -1 0

5.3 SND サブモジュール

SNDは,指定された音声ファイルを再生するサブモジュールである.VoiceXMLにおけるaudio要素を実現するために使用される.

このモジュールの仕様は将来変更される可能性がある.

SNDは内部処理で/usr/bin/playを使用している.

コマンドset Playの値にファイル名の絶対パスを与える.再生開始と再生終了の時点でtell startおよびtell endを送信する.

List 5.1 SND の実行例
to @SND set Play = /usr/share/sndconfig/sample.au
From @SND tell start /usr/share/sndconfig/sample.au
From @SND tell end /usr/share/sndconfig/sample.au

5.4 PAR サブモジュール

PARは,音声合成の出力開始と同期して,複数のコマンドを逐次実行するサブモジュールである.

このモジュールの仕様は将来変更される可能性がある.

コマンドset Init = 1は,出力リストの初期化を行なう.

コマンドset Cmd = sleep XXXは,出力リストの末尾に,一定時間のウェイトを行なう命令を追加する.

コマンドset Cmd = to @XXX XXXは,出力リストの末尾に,他のサブモジュールに対する出力命令を追加する.

出力リストの実行は,SSMからのSSMSpeak.stat = SPEAKINGを受信することによって開始する.

List 5.2 PAR の実行例
 to @PAR set Init = 1
 to @PAR set Cmd = sleep 1.0
 to @PAR set Cmd = to @FSM set FaceExp = HAPPY 1 100 1000
 to @PAR set Cmd = sleep 1.4
 to @PAR set Cmd = to @FSM set FaceExp = SAD 1 100 1000
 to @PAR set Cmd = sleep 2.0
 to @PAR set Cmd = to @FSM set FaceMot = NOD 1
 to @AM-MCL set Speak = 私には、うれしいことも、悲しいことも、いろいろあります。

5.5 SRM サブモジュール

Galatea DMのSRMはオリジナル版から独自に修正している.

主な修正点:

5.6 SIM サブモジュール

SIMは,音声入力SRMからの認識結果(XML)をDMが受理できるイベントに変換するサブモジュールである.

tellメッセージは3桁のステータスコードを返す.

SIMの主要な命令は次の通り.

 to @SIM set SRM_Recog = START
 to @SIM set SRM_Julian = mictest
 to @SIM set SRM_XML_File = mictest.xml
 to @SIM set SRM_XML_String = <grammar> xxxx : DMが使用
 to @SIM set CompileGrammar = ....
 to @SIM set ButtonPressed = はい
 to @SIM set SlotAlias = RESET
 to @SIM set DialogName = form1

5.7 DIM サブモジュール

Galatea DMのDIMはユーザとエージェントの発話状態に応じてまばたきやアイコンタクトの制御を行うための実験的なモジュールであり,Rubyで実装されている.(DIM.rb)以下の命令が用意されている.

 to @DIM set AgentSpeakState = 0
 to @DIM set UserSpeakState = 0
 to @DIM set Busy = 0
 to @DIM set AutoGaze = 0

5.8 各エンジンのバージョン情報

DM/Modules/AgentManager.pl
DM/SRM
DM/FSM
DM/SSM