1 導入マニュアル

1.1 動作環境

Galatea DM 1.0は,以下の構成で開発と動作確認をしている.

ハードウェア:

ソフトウェア:

ハードウェア性能不足の場合には,音声と表示の同期がずれることがある.また、ノートPCなど音声入出力の仕様によっては,ALSA (Advanced Linux Sound Architecture)が必要な場合がある.

1.2 Galatea のインストール

Redhat Linux 9.0 Publisher's Edition(フルインストール)における各サブモジュールとGalatea DMのインストール手順を示す.

各サブモジュールの設定に不備があると,DM実行時のエラーの原因を特定することが困難になったり,一部のプロセスが無限ループを起こして終了できない,といった障害が起こる恐れがある.したがって,各サブモジュールを単体で十分に動作確認した上でDMを実行することが望ましい.

以下は,/home/demoの下にパッケージを展開し,そこでコンパイルして実行する場合である.一部の作業ではルート権限が必要である.

実行例の表示において,行が長すぎる場合には行末に\を入れてあるが,実際には改行しない.

1.2.1 Galatea のファイル構成

Galateaは通常,下記の構成でインストールが行なわれる.

1.2.2 GLUT の更新

Redhat Linux 9.0に標準で導入されているglut-3.7-12ではFSMは動作しないため,glut-3.7-14に更新する必要がある.

現在インストールされているGLUTのバージョンは以下で確認できる.

 $ rpm -q glut
 glut-3.7-12

取得および更新の手順は以下の通りである.

 $ su
 # rpm -e glut-devel-3.7-12
 # rpm -Uvh glut-3.7-14.i386.rpm
 # rpm -ivh glut-devel-3.7-14.i386.rpm

1.2.3 顔画像モジュール(FSM)の動作確認

顔画像モジュールを単体で実行し,動作確認を行なうことができる.

 $ pwd
 /home/demo/galatea-v3.0
 $ cd FSM/bin
 $ ./fsm

マウスオペレーション:エージェントをマウスで操作することができる.

キーボードオペレーション:

(注)フルスクリーンにした場合,元に戻すことはできない.

補足:フレームレートの変更

高性能のビデオカードを有するマシンでは,フレームレートを増やして画像を滑らかにすることができる.ただし,ビデオ出力のリフレッシュレートが上限である.

性能の低いマシンでは他のモジュールの処理に悪影響をおよぼす恐れがある。変更は自己責任でおこなうこと。

設定はFSM/data/config.txtの以下の行を変更する.

 #MaxFrameRate 30
 MaxFrameRate 100

1.2.4 Javaのインストール

Java2 SDKはhttp://java.sun.com/からLinux版(RPM)をダウンロードすること。

 $ chmod 755 j2sdk-1_4_2-linux-i586-rpm.bin
 $ ./j2sdk-1_4_2-linux-i586-rpm.bin
 $ su
 # rpm -ivh j2sdk-1_4_2-linux-i586.rpm

RedHat Linuxに元々/usr/bin/javaが存在する場合は,混同を避けるために別名に変更するとよい.

 # cd /usr/bin/
 # mv java java.org

/usr/local/bin/javaという名前でシンボリックリンクを作成する.

 # cd /usr/local/bin
 # ln -s /usr/java/j2sdk1.4.2/bin/j* .
 # exit

1.2.5 形態素解析(morph)のインストール

dartsおよびchasenのインストールは必須である.これらの作業にはルート権限が必要である.

darts-0.2をmakeし,make installする.

 $ pwd
 /home/demo/galatea-v3.0/morph
 $ cd darts-0.2
 $ ./configure
 $ make
 $ make check
 $ su
 # make install
 # exit
 $ cd ..

chasen-2.3.3をmakeし,make installする.

 $ pwd
 /home/demo/galatea-v3.0/morph
 $ cd chasen-2.3.3
 $ ./configure --prefix=/usr/local/chasen-2.3.3
 $ make
 # su
 # make install
 # exit
 $ cd ..
unidic の再コンパイル

unidic-1.1.0をmakeする手順は次の通り.make installは不要である.

 $ pwd
 /home/demo/galatea-v3.0/morph
 $ cd unidic-1.1.0
 $ ./configure --with-mkchadic=../chasen-2.3.3/mkchadic \
     --with-chasen-config=../chasen-2.3.3/chasen-config \
     --with-exclude-dic=fillers.dic
 $ make

1.2.6 音量コントロールの設定

以後の作業に進む前に,音声が適切に録音・再生できることを確認する.

 $ gnome-volume-control &
 vol   : 連動on, 消音off,          スライダー適度に上げる
 pcm   : 連動on, 消音off,          スライダー適度に上げる
 mic   :         消音on,  録音on
 igain : 連動on, 消音off, 録音off, スライダー適度に上げる
 $ gnome-sound-recorder &

[録音]→マイクに向かって何か発話する→[停止]→[再生]

1.2.7 音声合成(SSM)の動作確認

RUNスクリプトを実行し,合成音声が出力されることを確認する.

 $ pwd
 /home/demo/galatea-v3.0/SSM
 $ perl RUN
ssm.conf と chasenrc の設定

galatea-v3.0パッケージにおいては以下は設定済みである.GalateaTalkを更新する場合などには確認すること.

List 1 SSM/ssm.confの一部
 # path name of 'chasen'
 CHASEN: /usr/local/chasen-2.3.3/bin/chasen
 
 # configuration file for 'chasen'
 CHASEN-RC: ./chasenrc
 
 # command of running 'chaone'
 CHAONE: /usr/local/bin/java -jar ../morph/chaone-1.1.0.jar
List 2 SSM/chasenrcの一部
 ;(文法ファイル  /usr/local/lib/chasen/dic/unidic)
 ;(GRAMMAR  /usr/local/lib/chasen/dic/unidic)
 (GRAMMAR  ../morph/unidic-1.1.0)

1.2.8 音声認識(SRM)の動作確認

音声認識モジュールの動作確認を行なう.

 $ cd /home/demo/galatea-v3.0
 $ cd SRM
 $ ./configure
 $ perl ./SRM_Main.pl

 set Run = INIT
 set Run = START

マイクに向かって「上着を白にしてください」と喋って,認識されることを確認する.

 set Grammar = GramXML/renraku/renraku.xml

マイクに向かって「甲斐先生の連絡先を教えて下さい」と喋って,認識されることを確認する.

Control-Cで終了する.

補足:julianの再コンパイル

付属の実行バイナリ(bin/julian)がうまく動作しない場合は,julianをソースからコンパイルすること.

 $ tar xzvf julius-3.3p3-Galatea.tar.gz
 $ cd julius-3.3p3-Galatea
 $ ./configure --enable-julian
 $ make
 $ cp julius/julian adinrec/adinrec adintool/adintool \
   gramtools/generate/generate \
   gramtools/accept_check/accept_check \
   gramtools/mkdfa/mkfa-1.44-flex/mkfa ../bin

1.2.9 タスクマネージャ(TM)の動作確認

各サブモジュールの統合動作確認を行なう.ただしGalatea DM自身はTMを使用していない.

 $ cd /home/demo/galatea-v3.0
 $ cd TM
 $ ./demo_Repeat.sh
 $ ./demo_Appoint.sh
 $ ./demo_Renraku.sh

1.2.10 Ruby/TK の確認

DMで使用する追加サブモジュールは,Ruby/TKを使用している.

 $ ruby -r tcltk -e "p 'ok'"

"ok"が出力されない場合は、下記をインストールすること.

1.3 Galatea DM の実行

1.3.1 音量コントロールの確認

Linuxの音声入出力デバイスは,gnome-volume-controlaumixなどのコマンドを使用して,PCMからの音声出力と,マイクからの音声入力を有効にし,音量を適切に設定すること.

ALSAを使用している場合に音量を設定するためのsetup_amixerスクリプトが用意されている.動作環境に合わせて修正が必要な場合もあるので,内容を確認した上で利用すること.

$ cd Galatea (ツールキットのディレクトリ)
$ cd DM
$ ./setup_amixer

1.3.2 対話の実行(galateaコマンド)

Galatea DMの処理系はgalateaコマンドである.

galateaコマンドの基本的な使い方では,コマンドの引数としてVoiceXML (拡張子は通常.vxml)ファイルを指定する.

例えば,DM/testsディレクトリのweather.vxmlファイルを実行する場合には,以下のようになる.

 $ cd galatea-v3.0
 $ cd DM
 $ ./galatea tests/weather.vxml

なお,galateaコマンドを実行してから各エンジンを初期化して,エージェントの顔が表示されるまでに約15秒,対話が始まるまでに約30秒かかる.コンピュータの処理速度が低い場合は,さらに多くの時間がかかる.

カレントディレクトリ以外からの実行

DMディレクトリ以外の場所にをカレントディレクトリしてgalatea DMを実行する場合には,DM/galateaの下記の行を適切に設定すること.

List 3 DM/galatea の一部
 #INSTALLDIR=.
 INSTALLDIR=/home/demo/galatea-v3.0/DM

1.3.3 不要プロセスの終了(finコマンド)

Galatea DMが内部で呼び出している各モジュールのプロセスが,Galatea DMの終了後にも動き続けている場合がある.この場合,Galatea DMが正常に動作しない場合や,動作が遅くなることがある.

Galatea DMの実行中は,topなどのコマンドでプロセスの実行状況を監視するとよい.

不要なプロセスを終了するには,finスクリプトを実行すること.

 $ ./fin

1.3.4 ドキュメント解釈結果の表示(-pオプション)

galateaコマンドに-pオプションをつけて実行すると,読み込まれた対話ファイルの解釈だけを行ない,対話を実行しない.

 $ ./galatea -p tests/kani.vxml

解釈した結果(中間ファイル形式)を標準出力に表示する.この機能は,VoiceXMLファイルの記述やGalatea DMの動作のデバッグの目的で用意されている.

中間ファイルの仕様は未公開であるが,中間ファイルを作成したものと同じ処理系であれば,galateaコマンドによって対話を実行できる.

 $ ./galatea -p tests/kani.vxml > _kani.pdoc
 $ ./galatea _kani.pdoc

1.3.5 バージョンの表示(-vオプション)

galateaコマンドに-vオプションをつけて実行すると,Galatea DMのバージョン表示だけを行ない,対話を実行しない.

 $ ./galatea -v