Galatea DM 1.0は,以下の構成で開発と動作確認をしている.
ハードウェア:
ソフトウェア:
ハードウェア性能不足の場合には,音声と表示の同期がずれることがある.また、ノートPCなど音声入出力の仕様によっては,ALSA (Advanced Linux Sound Architecture)が必要な場合がある.
Redhat Linux 9.0 Publisher's Edition(フルインストール)における各サブモジュールとGalatea DMのインストール手順を示す.
各サブモジュールの設定に不備があると,DM実行時のエラーの原因を特定することが困難になったり,一部のプロセスが無限ループを起こして終了できない,といった障害が起こる恐れがある.したがって,各サブモジュールを単体で十分に動作確認した上でDMを実行することが望ましい.
以下は,/home/demoの下にパッケージを展開し,そこでコンパイルして実行する場合である.一部の作業ではルート権限が必要である.
実行例の表示において,行が長すぎる場合には行末に\を入れてあるが,実際には改行しない.
Galateaは通常,下記の構成でインストールが行なわれる.
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
顔画像モジュールを単体で実行し,動作確認を行なうことができる.
$ pwd /home/demo/galatea-v3.0 $ cd FSM/bin $ ./fsm
マウスオペレーション:エージェントをマウスで操作することができる.
キーボードオペレーション:
(注)フルスクリーンにした場合,元に戻すことはできない.
高性能のビデオカードを有するマシンでは,フレームレートを増やして画像を滑らかにすることができる.ただし,ビデオ出力のリフレッシュレートが上限である.
性能の低いマシンでは他のモジュールの処理に悪影響をおよぼす恐れがある。変更は自己責任でおこなうこと。
設定はFSM/data/config.txtの以下の行を変更する.
#MaxFrameRate 30 MaxFrameRate 100
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
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-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
以後の作業に進む前に,音声が適切に録音・再生できることを確認する.
$ gnome-volume-control &
vol : 連動on, 消音off, スライダー適度に上げる pcm : 連動on, 消音off, スライダー適度に上げる mic : 消音on, 録音on igain : 連動on, 消音off, 録音off, スライダー適度に上げる
$ gnome-sound-recorder &
[録音]→マイクに向かって何か発話する→[停止]→[再生]
RUNスクリプトを実行し,合成音声が出力されることを確認する.
$ pwd /home/demo/galatea-v3.0/SSM $ perl RUN
galatea-v3.0パッケージにおいては以下は設定済みである.GalateaTalkを更新する場合などには確認すること.
# 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
;(文法ファイル /usr/local/lib/chasen/dic/unidic) ;(GRAMMAR /usr/local/lib/chasen/dic/unidic) (GRAMMAR ../morph/unidic-1.1.0)
音声認識モジュールの動作確認を行なう.
$ 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で終了する.
付属の実行バイナリ(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
各サブモジュールの統合動作確認を行なう.ただしGalatea DM自身はTMを使用していない.
$ cd /home/demo/galatea-v3.0 $ cd TM
$ ./demo_Repeat.sh
$ ./demo_Appoint.sh
$ ./demo_Renraku.sh
DMで使用する追加サブモジュールは,Ruby/TKを使用している.
$ ruby -r tcltk -e "p 'ok'"
"ok"が出力されない場合は、下記をインストールすること.
Linuxの音声入出力デバイスは,gnome-volume-control
やaumix
などのコマンドを使用して,PCMからの音声出力と,マイクからの音声入力を有効にし,音量を適切に設定すること.
ALSAを使用している場合に音量を設定するためのsetup_amixer
スクリプトが用意されている.動作環境に合わせて修正が必要な場合もあるので,内容を確認した上で利用すること.
$ cd Galatea (ツールキットのディレクトリ) $ cd DM $ ./setup_amixer
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の下記の行を適切に設定すること.
#INSTALLDIR=. INSTALLDIR=/home/demo/galatea-v3.0/DM
Galatea DMが内部で呼び出している各モジュールのプロセスが,Galatea DMの終了後にも動き続けている場合がある.この場合,Galatea DMが正常に動作しない場合や,動作が遅くなることがある.
Galatea DMの実行中は,top
などのコマンドでプロセスの実行状況を監視するとよい.
不要なプロセスを終了するには,fin
スクリプトを実行すること.
$ ./fin
galatea
コマンドに-pオプションをつけて実行すると,読み込まれた対話ファイルの解釈だけを行ない,対話を実行しない.
$ ./galatea -p tests/kani.vxml
解釈した結果(中間ファイル形式)を標準出力に表示する.この機能は,VoiceXMLファイルの記述やGalatea DMの動作のデバッグの目的で用意されている.
中間ファイルの仕様は未公開であるが,中間ファイルを作成したものと同じ処理系であれば,galatea
コマンドによって対話を実行できる.
$ ./galatea -p tests/kani.vxml > _kani.pdoc $ ./galatea _kani.pdoc
galatea
コマンドに-vオプションをつけて実行すると,Galatea DMのバージョン表示だけを行ない,対話を実行しない.
$ ./galatea -v