======================================================================

	IPA「擬人化エージェント基本ソフトウェアの開発」
	"Galatea" プロジェクト

		音声認識モジュールキット for Windows VC++
		version 1.0

					2002/11/21  alpha release
					2003/01/30  beta release
					2003/02/25  v1.0 release
					音声認識モジュール班
======================================================================

本キットは、音声認識モジュール(SRM) の Windows 版です．
音声認識モジュール本体、およびサンプルの文法が含まれています．


□ファイルの構成
=================

00readme.txt			文書：この文書
00HowToTest.txt			文書：動作テストの手順
00HowToCompile.txt		文書：VC++での実行バイナリのコンパイル手順
00testresult.txt		文書：動作検査の結果
bin\				実行バイナリ
    julian.exe			  音声認識モジュール Julian 本体
    jcontrol.exe		  サンプルクライアント
    mkdfa.pl			  文法コンパイラ起動スクリプト
    mkfa.exe			  文法コンパイラ本体
    generate.exe		  文ランダム生成ツール
    accept_check.exe		  単語列の受理/非受理チェックツール
    nextword.exe		  次単語予測チェックツール
    adintool.exe		  音声録音・送信ツール
    adinrec.exe			  音声録音テストツール
xmlgram-tools\			XML->Julian文法形式変換ツール
    00README_XML.txt		  文書：文法変換ツールについて
    xml2julgrm.pl		  起動スクリプト
    config.pl			  設定ファイル
    xml2julgrm.xsl		  変換ツール本体(Javaプログラム)
test\				テスト実行スクリプト
    run_SRM.bat			  認識モジュール起動バッチファイル
    run_jcontrol.bat		  サンプルクライアント起動バッチファイル
    run_localtest.bat		  単体動作のテスト起動バッチファイル
GramJulian\			Julian 形式のサンプル文法
GramXML\			XML 形式のサンプル文法
AcousticModel\			音響モデル
doc\
    HowToWriteGrammar.pdf	文書：文法の記述とDFA形式への変換について
    
julius-3.3p3-Galatea.tar.gz	Julian ver.3.3p3 for Galatea ソースファイル


□動作環境
=================

本モジュールは Microsoft Windows 98/Me/2000/XP で動作します．マイクに
よる音声入力を行うには，16bit 録音の行えるサウンドカードが必要です．

XML->Julian形式変換ツールは，Java2SDK 1.4.1_01 を想定しています．
perl スクリプトに関しては，ActivePerl 等のWindows 版 perl で動作します．

開発は日本語版 Windows XP Professional 上で，Microsoft Visual C++ 6.0
を用いて行われました．


□動作のテスト
===============

付属のサンプルクライアントを用いて，
音声認識モジュールの動作をテストすることができます．

テスト手順については， 00HowToTest.txt をご覧ください．


□認識モジュールの起動方法の解説
=================================

起動手順は，まず Julian をサーバーモードで起動し，その後クライアント側
からネットワークを介してソケット接続します．

まず，以下の要領で Julian をサーバーモードで起動します．

% julian -h AcousticModel\hmmdefs,mono16mix,gid.gz -dfa \
  GramJulian\appoint\appoint.dfa -v GramJulian\appoint\appoint.dict \
  -input mic -module ポート番号

-dfa および -v で初期の文法ファイルと辞書ファイルを指定します．仕様上，
起動時に文法を何か指定する必要があるので，あとで切り替える予定であって
もダミーを指定するようにしてください．

起動後，クライアントからの接続待ちになります．
クライアントからは，サーバーとポート番号を指定して接続します．
接続後，相互にメッセージを通信モードとなります．


□サンプルクライアント jcontrol
================================

テスト用のサンプルクライアント "jcontrol" を同梱しています．
以下の要領で起動します．

    % jcontrol.exe 認識モジュールのホスト名 ポート番号

起動後，Julian からのメッセージを標準出力へ出力しつつ，
標準入力からのコマンドを解釈して Julian へ送信します．

jcontrol のマニュアルおよびソースファイルは
"julius-3.3p2-Galatea-win\jcontrol\" にあります．
認識モジュールを用いるアプリケーションの開発については，
このソースを参考にしてください．


□認識用文法の記述方法
=======================

Julian 形式の文法の書き方については，
"doc\HowToWriteGrammar.pdf" をご覧ください．

なお文法ファイルの漢字コードは SJIS を推奨します．
他の文字コードの場合，漢字コードはSJISに自動変換されます．


□モジュール間のデータ通信形式
================================

音声認識モジュール（サーバー）と他のモジュール（クライアント）との
データの通信形式は，基本的に 2001年度 Unix 版の SRM に準拠しています．

○認識モジュール→他モジュール
-------------------------------

認識モジュールからクライアントへの出力メッセージは以下のとおりです．

・音声入力 ready メッセージ
・音声録音開始メッセージ
・音声録音終了メッセージ
・認識結果
・文法更新情報

出力形式は Unix 版 SRM と同一です．

メッセージ区切りについては，".\n" のみの行を区切りとして送信します．
クライアント側は ".\n" を検出してメッセージを区切ります．
例えば，音声入力 ready メッセージは以下のような形式で
認識モジュールからクライアントへ送信されます．

	<INPUT STATUS="LISTEN" TIME="システム時間"/>
	.

○他モジュール→認識モジュール
-------------------------------

クライアントから認識モジュールへは，コマンドを送信できます．

・コマンド単体で，送信データを持たないもの："コマンド名\n" で送信

    STATUS，PAUSE, TERMINATE, RESUME

・送信データを持つもの："コマンド名\n" に続いてデータを送信

    - 文法ファイルを送信するコマンド
     CHANGEGRAM, ADDGRAM
    - 認識エンジン内の文法IDを指定するコマンド
     DELGRAM, DEACTIVATEGRAM, ACTIVATEGRAM

ネットワーク経由の文法の流し込みは Unix 版と少し異なり，
文法(.dfa)ファイルと辞書(.dict)ファイルを１つのコマンドで流し込む仕様に
変更されました．詳細については，
julius-3.3p3-Galatea\doc\module.html をご覧ください．


□実行バイナリのコンパイル方法
===============================

bin\ 以下にあるプログラムの実行バイナリのソースコードは
julius-3.3p3-Galatea.tar.gz です．
ソースのコンパイルはMicrosoft Visual C++ 6.0 で行いました．
VC++ でのコンパイル方法については，"00HowToCompile.txt" をご覧ください．


以上
