julius/multi-gram.c

認識用文法の管理 for Julian [詳細]

ソースコードを見る。

関数

static void multigram_setup (DFA_INFO *d, WORD_INFO *w)
static void print_all_gram ()
static void send_gram_info ()
static void multigram_build_append (DFA_INFO *gdfa, WORD_INFO *gwinfo, MULTIGRAM *m)
void multigram_add (DFA_INFO *dfa, WORD_INFO *winfo, char *name)
boolean multigram_delete (int delid)
void multigram_delete_all ()
static boolean multigram_exec_delete ()
void multigram_activate (int gid)
void multigram_deactivate (int gid)
static boolean multigram_exec_activate ()
boolean multigram_exec ()
 グローバル文法の更新
void multigram_read_file (char *dfa_file, char *dict_file)
void multigram_add_gramlist (char *dfafile, char *dictfile)
void multigram_remove_gramlist ()
void multigram_read_all_gramlist ()
void multigram_add_prefix_list (char *prefix_list, char *cwd)
 プレフィックスから複数の文法を起動時読み込みリストに追加する.
void multigram_add_prefix_filelist (char *listfile)
 リストファイルを読み込み複数文法を起動時読み込みリストに追加する.
int multigram_get_all_num ()
int multigram_get_gram_from_category (int category)

変数

static char * hookstr [] = {"", "delete", "activate", "deactivate"}
 Grammar status to be processed in the next reload timing.

説明

認識用文法の管理 for Julian

作者:
Akinobu Lee
日付:
Sat Jun 18 23:45:18 2005

このファイルには,認識用文法の読み込みと管理を行う関数が含まれています. これらの関数は,文法ファイルの読み込み,および各種データの セットアップを行います.

複数文法の同時認識に対応しています.複数の文法を一度に読み込んで, 並列に認識を行えます.また,モジュールモードでは,クライアントから 認識実行中に文法を動的に追加・削除したり,一部分の文法を無効化・ 有効化したりできます.また与えられた個々の文法ごとに認識結果を 出すことができます.

与えられた(複数の)文法は一つのグローバル文法として結合され, 文法の読み込みや削除などの状態変更を行ったとき,更新されます. 結合された構文規則 (DFA) が global_dfa に,語彙辞書が global_winfo に それぞれローカルに格納されます.これらは適切なタイミングで multigram_setup() が呼び出されたときに,global.h 内の大域変数 dfa および winfo にコピーされ,認識処理において使用されるようになります.

multi-gram.c で定義されています。


関数

static void print_all_gram (  )  [static]

現在保持している文法のリストを標準出力に出力する.

multi-gram.c176 行で定義されています。

参照元 multigram_add(), と multigram_exec().

static void send_gram_info (  )  [static]

現在の保持している文法のリストをモジュールに送信する.

multi-gram.c209 行で定義されています。

参照元 multigram_add(), と multigram_exec().

static void multigram_build_append ( DFA_INFO gdfa,
WORD_INFO gwinfo,
MULTIGRAM *  m 
) [static]

文法に新たな文法を結合する.

引数:
gdfa [i/o] 結合先の文法のDFA情報
gwinfo [i/o] 結合先の文法の辞書情報
m [i/o] 結合する文法情報.結果的にどの位置に結合されたかが記録される.

multi-gram.c249 行で定義されています。

参照元 multigram_exec().

void multigram_add ( DFA_INFO dfa,
WORD_INFO winfo,
char *  name 
)

現在所持している文法のリストに新たな文法を追加登録する.

引数:
dfa [in] 追加登録する文法のDFA情報
winfo [in] 追加登録する文法の辞書情報
name [in] 追加登録する文法の名称

multi-gram.c291 行で定義されています。

参照元 msock_exec_command(), と multigram_read_file().

boolean multigram_delete ( int  delid  ) 

文法リスト中のある文法を,次回更新時に削除するようマークする.

引数:
delid [in] 削除する文法の文法ID
戻り値:
通常時 TRUE を返す.指定されたIDの文法が無い場合は FALSE を返す.

multi-gram.c342 行で定義されています。

参照元 msock_exec_command().

void multigram_delete_all (  ) 

文法リスト中のすべての文法を次回更新時に削除するようマークする.

multi-gram.c372 行で定義されています。

参照元 msock_exec_command().

static boolean multigram_exec_delete (  )  [static]

削除マークのつけられた文法をリストから削除する.

戻り値:
グローバル文法の再構築が必要なときは TRUE を,不必要なときは FALSE を返す.

multi-gram.c393 行で定義されています。

参照元 multigram_exec().

void multigram_activate ( int  gid  ) 

文法リスト中の指定された文法を,有効化する.ここでは次回更新時に 反映されるようにマークをつけるのみである.

引数:
gid [in] 有効化したい文法の ID

multi-gram.c444 行で定義されています。

参照元 msock_exec_command().

void multigram_deactivate ( int  gid  ) 

文法リスト中の指定された文法を無効化する.無効化された文法は 認識において仮説展開されない.これによって,グローバル辞書を 再構築することなく,一時的に個々の文法をON/OFFできる.無効化した 文法は multigram_activate() で再び有効化できる.なおここでは 次回の文法更新タイミングで反映されるようにマークをつけるのみである.

引数:
gid [in] 無効化したい文法のID

multi-gram.c490 行で定義されています。

参照元 msock_exec_command().

static boolean multigram_exec_activate (  )  [static]

有効化・無効化マークのつけられた文法を実際に有効化・無効化する.

戻り値:
無効から有効へ,あるいは有効から無効へ状態が変化した文法が一つでも あればTRUE, 状態が全く変化しなかった場合は FALSE を返す.

multi-gram.c523 行で定義されています。

参照元 multigram_exec().

boolean multigram_exec (  ) 

グローバル文法の更新

文法リストの削除または追加をチェックし,それに対応してグローバル文法 を更新する.

リスト中に削除マークがつけられた文法がある場合は,その文法を削除し, グローバル辞書を再構築する.新たに追加された文法がある場合は, その文法を現在のグローバル辞書の末尾に追加する.

上記のチェックの結果グローバル辞書に変更があれば,その更新されたグローバル 辞書から木構造化辞書などの音声認識用データ構造を再構築する.

戻り値:
常に TRUE を返す.

multi-gram.c587 行で定義されています。

参照元 final_fusion(), main_recognition_loop(), と msock_exec_command().

void multigram_read_file ( char *  dfa_file,
char *  dict_file 
)

dfaファイルとdictファイルを読み込んで文法リストに追加する.

引数:
dfa_file [in] dfa ファイル名
dict_file [in] dict ファイル名

multi-gram.c689 行で定義されています。

参照元 multigram_read_all_gramlist().

void multigram_add_gramlist ( char *  dfafile,
char *  dictfile 
)

起動時読み込みリストに文法を追加する.

引数:
dfafile [in] DFAファイル
dictfile [in] 単語辞書

multi-gram.c756 行で定義されています。

参照元 final_fusion(), multigram_add_prefix_filelist(), と multigram_add_prefix_list().

void multigram_remove_gramlist (  ) 

起動時読み込みリストを消す.

multi-gram.c778 行で定義されています。

参照元 opt_parse().

void multigram_read_all_gramlist (  ) 

起動時に指定されたすべての文法の内容を読み込む.

multi-gram.c805 行で定義されています。

参照元 final_fusion().

void multigram_add_prefix_list ( char *  prefix_list,
char *  cwd 
)

プレフィックスから複数の文法を起動時読み込みリストに追加する.

プレフィックスは "foo", あるいは "foo,bar" のようにコンマ区切りで 複数与えることができます.各文字列の後ろに ".dfa", ".dict" をつけた ファイルを,それぞれ文法ファイル・辞書ファイルとして順次読み込みます. 読み込まれた文法は順次,文法リストに追加されます.

引数:
prefix_list [in] プレフィックスのリスト
cwd [in] カレントディレクトリの文字列

multi-gram.c840 行で定義されています。

参照元 opt_parse().

void multigram_add_prefix_filelist ( char *  listfile  ) 

リストファイルを読み込み複数文法を起動時読み込みリストに追加する.

ファイル内に1行に1つずつ記述された文法のプレフィックスから, 対応する文法ファイルを順次読み込みます.

各行の文字列の後ろに ".dfa", ".dict" をつけたファイルを, それぞれ文法ファイル・辞書ファイルとして順次読み込みます. 読み込まれた文法は順次,文法リストに追加されます.

引数:
listfile [in] プレフィックスリストのファイル名

multi-gram.c902 行で定義されています。

参照元 opt_parse().

int multigram_get_all_num (  ) 

現在ある文法の数を得る(active/inactiveとも).

戻り値:
文法の数を返す.

multi-gram.c972 行で定義されています。

参照元 ttyout_pass2().

int multigram_get_gram_from_category ( int  category  ) 

単語カテゴリの属する文法を得る.

引数:
category 単語カテゴリID
戻り値:
単語カテゴリの属する文法のIDを返す.

multi-gram.c999 行で定義されています。

参照元 msock_pass2(), と ttyout_pass2().


Juliusに対してTue Sep 22 00:14:18 2009に生成されました。  doxygen 1.6.0