Julius 4.2
関数
libjulius/src/multi-gram.c

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

ソースコードを見る。

関数

static boolean multigram_rebuild_wchmm (RecogProcess *r)
boolean multigram_build (RecogProcess *r)
 グローバル文法を調べ,必要があれば木構造化辞書を(再)構築する.
static boolean multigram_append_to_global (DFA_INFO *gdfa, WORD_INFO *gwinfo, MULTIGRAM *m)
 グローバル文法の末尾に文法を追加する.
int multigram_add (DFA_INFO *dfa, WORD_INFO *winfo, char *name, PROCESS_LM *lm)
 新たな文法を,文法リストに追加する.
boolean multigram_delete (int delid, PROCESS_LM *lm)
 文法を削除する.
void multigram_delete_all (PROCESS_LM *lm)
 すべての文法を次回更新時に削除するようマークする.
static boolean multigram_exec_delete (PROCESS_LM *lm)
 削除マークのついた文法をリストから削除する.
int multigram_activate (int gid, PROCESS_LM *lm)
 文法を有効化する.
int multigram_deactivate (int gid, PROCESS_LM *lm)
 文法を無効化する.
static boolean multigram_exec_activate (PROCESS_LM *lm)
 文法の有効化・無効化を実行する.
boolean multigram_update (PROCESS_LM *lm)
 グローバル文法の更新
static boolean multigram_read_file_and_add (char *dfa_file, char *dict_file, PROCESS_LM *lm)
 dfaファイルとdictファイルを読み込んで文法リストに追加する.
boolean multigram_load_all_gramlist (PROCESS_LM *lm)
 起動時に指定されたすべての文法をロードする.
int multigram_get_all_num (PROCESS_LM *lm)
 現在ある文法の数を得る(active/inactiveとも).
int multigram_get_gram_from_category (int category, PROCESS_LM *lm)
 単語カテゴリの属する文法を得る.
int multigram_get_gram_from_wid (WORD_ID wid, PROCESS_LM *lm)
 単語IDから属する文法を得る.
void multigram_free_all (MULTIGRAM *root)
 保持している文法をすべて解放する。
int multigram_get_id_by_name (PROCESS_LM *lm, char *gramname)
 LM中の文法を名前で検索し,その文法IDを返す.
MULTIGRAMmultigram_get_grammar_by_name (PROCESS_LM *lm, char *gramname)
 LM中の文法を名前で検索する.
MULTIGRAMmultigram_get_grammar_by_id (PROCESS_LM *lm, unsigned short id)
 LM中の文法を ID 番号で検索する.
boolean multigram_add_words_to_grammar (PROCESS_LM *lm, MULTIGRAM *m, WORD_INFO *winfo)
 単語集合を文法に追加する.
boolean multigram_add_words_to_grammar_by_name (PROCESS_LM *lm, char *gramname, WORD_INFO *winfo)
 名前で指定された文法に単語集合を追加する.
boolean multigram_add_words_to_grammar_by_id (PROCESS_LM *lm, unsigned short id, WORD_INFO *winfo)
 番号で指定された文法に単語集合を追加する.

説明

認識用文法の管理

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

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

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

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


関数

static boolean multigram_append_to_global ( DFA_INFO gdfa,
WORD_INFO gwinfo,
MULTIGRAM m 
) [static]

グローバル文法の末尾に文法を追加する.

もとの文法構造体には,グローバル文法のどの位置にその文法が追加 されたか,そのカテゴリ番号と辞書番号の範囲が記録される.

引数:
gdfa[i/o] 結合先の文法のDFA情報
gwinfo[i/o] 結合先の文法の辞書情報
m[i/o] 結合する文法情報.

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

参照元 multigram_update().

static boolean multigram_exec_delete ( PROCESS_LM lm) [static]

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

引数:
lm[i/o] 言語処理インスタンス
戻り値:
グローバル文法の再構築が必要なときは TRUE を,不必要なときは FALSE を返す.

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

参照元 multigram_update().

static boolean multigram_exec_activate ( PROCESS_LM lm) [static]

文法の有効化・無効化を実行する.

引数:
lm[i/o] 言語処理インスタンス
戻り値:
無効から有効へ,あるいは有効から無効へ状態が変化した文法が一つでも あればTRUE, 状態が全く変化しなかった場合は FALSE を返す.

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

参照元 multigram_update().

static boolean multigram_read_file_and_add ( char *  dfa_file,
char *  dict_file,
PROCESS_LM lm 
) [static]

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

引数:
dfa_file[in] dfa ファイル名
dict_file[in] dict ファイル名
lm[i/o] 言語処理インスタンス

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

参照元 multigram_load_all_gramlist().

boolean multigram_load_all_gramlist ( PROCESS_LM lm)

起動時に指定されたすべての文法をロードする.

引数:
lm[i/o] 言語処理インスタンス

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

参照元 j_load_lm().

関数の呼び出しグラフ:

呼出しグラフ:

void multigram_free_all ( MULTIGRAM root)

保持している文法をすべて解放する。

引数:
root[in] root pointer of grammar list

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

参照元 j_process_lm_free().

関数の呼び出しグラフ:

呼出しグラフ: