Julius 4.2
関数
Grammar / Dictionary API
JuliusLib API

文法・単語辞書の操作 [詳細]

Grammar / Dictionary APIのコラボレーション図

関数

void multigram_add_gramlist (char *dfafile, char *dictfile, JCONF_LM *j, int lmvar)
 起動時読み込みリストに文法を追加する.
void multigram_remove_gramlist (JCONF_LM *j)
 起動時読み込みリストを消す.
boolean multigram_add_prefix_list (char *prefix_list, char *cwd, JCONF_LM *j, int lmvar)
 プレフィックスから複数の文法を起動時読み込みリストに追加する.
boolean multigram_add_prefix_filelist (char *listfile, JCONF_LM *j, int lmvar)
 リストファイルを読み込み複数文法を起動時読み込みリストに追加する.
void schedule_grammar_update (Recog *recog)
 全文法の変更をチェックし,必要であれば認識用辞書を再構築するよう エンジンに要求する.
void j_reset_reload (Recog *recog)
 再構築要求フラグをクリアする.
boolean multigram_build (RecogProcess *r)
 グローバル文法を調べ,必要があれば木構造化辞書を(再)構築する.
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)
 すべての文法を次回更新時に削除するようマークする.
int multigram_activate (int gid, PROCESS_LM *lm)
 文法を有効化する.
int multigram_deactivate (int gid, PROCESS_LM *lm)
 文法を無効化する.
boolean multigram_update (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から属する文法を得る.
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)
 番号で指定された文法に単語集合を追加する.

説明

文法・単語辞書の操作


関数

void multigram_add_gramlist ( char *  dfafile,
char *  dictfile,
JCONF_LM j,
int  lmvar 
)

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

引数:
dfafile[in] DFAファイル
dictfile[in] 単語辞書
j[in] LM 設定パラメータ
lmvar[in] LM 詳細型 id

gramlist.c66 行で定義されています。

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

関数の呼び出しグラフ:

呼出しグラフ:

void multigram_remove_gramlist ( JCONF_LM j)

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

引数:
j[in] LM 設定パラメータ

gramlist.c103 行で定義されています。

参照元 opt_parse(), と opt_release().

呼出しグラフ:

boolean multigram_add_prefix_list ( char *  prefix_list,
char *  cwd,
JCONF_LM j,
int  lmvar 
)

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

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

引数:
prefix_list[in] プレフィックスのリスト
cwd[in] カレントディレクトリの文字列
j[in] LM 設定パラメータ
lmvar[in] LM 詳細型 id

gramlist.c163 行で定義されています。

参照元 opt_parse().

関数の呼び出しグラフ:

呼出しグラフ:

boolean multigram_add_prefix_filelist ( char *  listfile,
JCONF_LM j,
int  lmvar 
)

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

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

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

引数:
listfile[in] プレフィックスリストのファイル名
j[in] LM 設定パラメータ
lmvar[in] LM 詳細型 id

gramlist.c265 行で定義されています。

参照元 opt_parse().

関数の呼び出しグラフ:

呼出しグラフ:

void schedule_grammar_update ( Recog recog)

全文法の変更をチェックし,必要であれば認識用辞書を再構築するよう エンジンに要求する.

実際の処理は次の認識の合間に行われる. この関数は文法を追加したり削除したなど, 文法リストに変更を加えたあとに必ず呼ぶべきである.

引数:
recog[in] engine instance

jfunc.c170 行で定義されています。

void j_reset_reload ( Recog recog)

再構築要求フラグをクリアする.

引数:
recog[in] engine instance

jfunc.c215 行で定義されています。

参照元 j_recognize_stream_core().

呼出しグラフ:

boolean multigram_build ( RecogProcess r)

グローバル文法を調べ,必要があれば木構造化辞書を(再)構築する.

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

引数:
r[in] recognition process instance
戻り値:
TRUE on success, FALSE on error.

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

参照元 j_launch_recognition_instance(), と j_recognize_stream_core().

関数の呼び出しグラフ:

呼出しグラフ:

int multigram_add ( DFA_INFO dfa,
WORD_INFO winfo,
char *  name,
PROCESS_LM lm 
)

新たな文法を,文法リストに追加する.

現在インスタンスが保持している文法のリストは lm->grammars に保存される. 追加した文法には,newbie と inactive のフラグがセットされ,次回の 文法更新チェック時に更新対象となる.

引数:
dfa[in] 追加登録する文法のDFA情報
winfo[in] 追加登録する文法の辞書情報
name[in] 追加登録する文法の名称
lm[i/o] 言語処理インスタンス
戻り値:
文法IDを返す.

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

参照元 multigram_read_file_and_add().

関数の呼び出しグラフ:

呼出しグラフ:

boolean multigram_delete ( int  delid,
PROCESS_LM lm 
)

文法を削除する.

文法リスト中のある文法について,削除マークを付ける. 実際の削除は multigram_exec_delete() で行われる.

引数:
delid[in] 削除する文法の文法ID
lm[i/o] 言語処理インスタンス
戻り値:
通常時 TRUE を返す. 指定されたIDの文法が無い場合は FALSE を返す.

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

関数の呼び出しグラフ:

void multigram_delete_all ( PROCESS_LM lm)

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

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

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

int multigram_activate ( int  gid,
PROCESS_LM lm 
)

文法を有効化する.

ここでは次回更新時に 反映されるようにマークをつけるのみである.

引数:
gid[in] 有効化したい文法の ID
lm[i/o] 言語処理インスタンス

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

関数の呼び出しグラフ:

int multigram_deactivate ( int  gid,
PROCESS_LM lm 
)

文法を無効化する.

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

引数:
gid[in] 無効化したい文法のID
lm[i/o] 言語処理インスタンス

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

関数の呼び出しグラフ:

boolean multigram_update ( PROCESS_LM lm)

グローバル文法の更新

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

引数:
lm[i/o] 言語処理インスタンス
戻り値:
常に TRUE を返す.

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

参照元 j_load_lm(), と j_recognize_stream_core().

関数の呼び出しグラフ:

呼出しグラフ:

int multigram_get_all_num ( PROCESS_LM lm)

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

引数:
lm[i/o] 言語処理インスタンス
戻り値:
文法の数を返す.

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

参照元 find_1pass_result_word(), j_recognize_stream_core(), output_result(), result_pass2(), と store_result_pass2().

呼出しグラフ:

int multigram_get_gram_from_category ( int  category,
PROCESS_LM lm 
)

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

引数:
category単語カテゴリID
lm[i/o] 言語処理インスタンス
戻り値:
単語カテゴリの属する文法のIDを返す.

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

参照元 store_result_pass2().

呼出しグラフ:

int multigram_get_gram_from_wid ( WORD_ID  wid,
PROCESS_LM lm 
)

単語IDから属する文法を得る.

引数:
wid単語ID
lm[i/o] 言語処理インスタンス
戻り値:
単語の属する文法のIDを返す.

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

参照元 find_1pass_result_word().

呼出しグラフ:

int multigram_get_id_by_name ( PROCESS_LM lm,
char *  gramname 
)

LM中の文法を名前で検索し,その文法IDを返す.

引数:
lm[in] LM process instance
gramname[in] grammar name
戻り値:
grammar ID, or -1 if not found.

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

関数の呼び出しグラフ:

MULTIGRAM* multigram_get_grammar_by_name ( PROCESS_LM lm,
char *  gramname 
)

LM中の文法を名前で検索する.

引数:
lm[in] LM process instance
gramname[in] grammar name
戻り値:
poitner to the grammar, or NULL if not found.

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

参照元 multigram_add_words_to_grammar_by_name().

関数の呼び出しグラフ:

呼出しグラフ:

MULTIGRAM* multigram_get_grammar_by_id ( PROCESS_LM lm,
unsigned short  id 
)

LM中の文法を ID 番号で検索する.

引数:
lm[in] LM process instance
id[in] ID number
戻り値:
poitner to the grammar, or NULL if not found.

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

参照元 multigram_add_words_to_grammar_by_id().

関数の呼び出しグラフ:

呼出しグラフ:

boolean multigram_add_words_to_grammar ( PROCESS_LM lm,
MULTIGRAM m,
WORD_INFO winfo 
)

単語集合を文法に追加する.

追加する単語の文法カテゴリIDについては,すでにアサインされているものが そのままコピーされる.よって,それらはこの関数を呼び出す前に, 追加対象の文法で整合性が取れるよう正しく設定されている必要がある. 木構造化辞書全体が,後に再構築される.

単語N-gram言語モデルへの辞書追加は現在サポートされていない.

引数:
lm[i/o] LM process instance
m[i/o] grammar to which the winfo will be appended
winfo[in] words to be added to the grammar
戻り値:
TRUE on success, or FALSE on failure.

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

参照元 multigram_add_words_to_grammar_by_id(), と multigram_add_words_to_grammar_by_name().

関数の呼び出しグラフ:

呼出しグラフ:

boolean multigram_add_words_to_grammar_by_name ( PROCESS_LM lm,
char *  gramname,
WORD_INFO winfo 
)

名前で指定された文法に単語集合を追加する.

multigram_add_words_to_grammar() を文法名で指定して実行する.

引数:
lm[i/o] LM process instance
gramname[in] name of the grammar to which the winfo will be appended
winfo[in] words to be added to the grammar
戻り値:
TRUE on success, or FALSE on failure.

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

関数の呼び出しグラフ:

boolean multigram_add_words_to_grammar_by_id ( PROCESS_LM lm,
unsigned short  id,
WORD_INFO winfo 
)

番号で指定された文法に単語集合を追加する.

multigram_add_words_to_grammar() を番号で指定して実行する.

引数:
lm[i/o] LM process instance
id[in] ID number of the grammar to which the winfo will be appended
winfo[in] words to be added to the grammar
戻り値:
TRUE on success, or FALSE on failure.

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

関数の呼び出しグラフ: