認識用文法の管理 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
このファイルには,認識用文法の読み込みと管理を行う関数が含まれています. これらの関数は,文法ファイルの読み込み,および各種データの セットアップを行います.
複数文法の同時認識に対応しています.複数の文法を一度に読み込んで, 並列に認識を行えます.また,モジュールモードでは,クライアントから 認識実行中に文法を動的に追加・削除したり,一部分の文法を無効化・ 有効化したりできます.また与えられた個々の文法ごとに認識結果を 出すことができます.
与えられた(複数の)文法は一つのグローバル文法として結合され, 文法の読み込みや削除などの状態変更を行ったとき,更新されます. 結合された構文規則 (DFA) が global_dfa に,語彙辞書が global_winfo に それぞれローカルに格納されます.これらは適切なタイミングで multigram_setup() が呼び出されたときに,global.h 内の大域変数 dfa および winfo にコピーされ,認識処理において使用されるようになります.
multi-gram.c で定義されています。
static void print_all_gram | ( | ) | [static] |
static void send_gram_info | ( | ) | [static] |
文法に新たな文法を結合する.
gdfa | [i/o] 結合先の文法のDFA情報 | |
gwinfo | [i/o] 結合先の文法の辞書情報 | |
m | [i/o] 結合する文法情報.結果的にどの位置に結合されたかが記録される. |
multi-gram.c の 249 行で定義されています。
参照元 multigram_exec().
現在所持している文法のリストに新たな文法を追加登録する.
dfa | [in] 追加登録する文法のDFA情報 | |
winfo | [in] 追加登録する文法の辞書情報 | |
name | [in] 追加登録する文法の名称 |
multi-gram.c の 291 行で定義されています。
boolean multigram_delete | ( | int | delid | ) |
文法リスト中のある文法を,次回更新時に削除するようマークする.
delid | [in] 削除する文法の文法ID |
multi-gram.c の 342 行で定義されています。
参照元 msock_exec_command().
void multigram_delete_all | ( | ) |
static boolean multigram_exec_delete | ( | ) | [static] |
削除マークのつけられた文法をリストから削除する.
multi-gram.c の 393 行で定義されています。
参照元 multigram_exec().
void multigram_activate | ( | int | gid | ) |
文法リスト中の指定された文法を,有効化する.ここでは次回更新時に 反映されるようにマークをつけるのみである.
gid | [in] 有効化したい文法の ID |
multi-gram.c の 444 行で定義されています。
参照元 msock_exec_command().
void multigram_deactivate | ( | int | gid | ) |
文法リスト中の指定された文法を無効化する.無効化された文法は 認識において仮説展開されない.これによって,グローバル辞書を 再構築することなく,一時的に個々の文法をON/OFFできる.無効化した 文法は multigram_activate() で再び有効化できる.なおここでは 次回の文法更新タイミングで反映されるようにマークをつけるのみである.
gid | [in] 無効化したい文法のID |
multi-gram.c の 490 行で定義されています。
参照元 msock_exec_command().
static boolean multigram_exec_activate | ( | ) | [static] |
有効化・無効化マークのつけられた文法を実際に有効化・無効化する.
multi-gram.c の 523 行で定義されています。
参照元 multigram_exec().
boolean multigram_exec | ( | ) |
グローバル文法の更新
文法リストの削除または追加をチェックし,それに対応してグローバル文法 を更新する.
リスト中に削除マークがつけられた文法がある場合は,その文法を削除し, グローバル辞書を再構築する.新たに追加された文法がある場合は, その文法を現在のグローバル辞書の末尾に追加する.
上記のチェックの結果グローバル辞書に変更があれば,その更新されたグローバル 辞書から木構造化辞書などの音声認識用データ構造を再構築する.
multi-gram.c の 587 行で定義されています。
参照元 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.c の 689 行で定義されています。
void multigram_add_gramlist | ( | char * | dfafile, | |
char * | dictfile | |||
) |
起動時読み込みリストに文法を追加する.
dfafile | [in] DFAファイル | |
dictfile | [in] 単語辞書 |
multi-gram.c の 756 行で定義されています。
参照元 final_fusion(), multigram_add_prefix_filelist(), と multigram_add_prefix_list().
void multigram_remove_gramlist | ( | ) |
void multigram_read_all_gramlist | ( | ) |
void multigram_add_prefix_list | ( | char * | prefix_list, | |
char * | cwd | |||
) |
プレフィックスから複数の文法を起動時読み込みリストに追加する.
プレフィックスは "foo", あるいは "foo,bar" のようにコンマ区切りで 複数与えることができます.各文字列の後ろに ".dfa", ".dict" をつけた ファイルを,それぞれ文法ファイル・辞書ファイルとして順次読み込みます. 読み込まれた文法は順次,文法リストに追加されます.
prefix_list | [in] プレフィックスのリスト | |
cwd | [in] カレントディレクトリの文字列 |
multi-gram.c の 840 行で定義されています。
参照元 opt_parse().
void multigram_add_prefix_filelist | ( | char * | listfile | ) |
リストファイルを読み込み複数文法を起動時読み込みリストに追加する.
ファイル内に1行に1つずつ記述された文法のプレフィックスから, 対応する文法ファイルを順次読み込みます.
各行の文字列の後ろに ".dfa", ".dict" をつけたファイルを, それぞれ文法ファイル・辞書ファイルとして順次読み込みます. 読み込まれた文法は順次,文法リストに追加されます.
listfile | [in] プレフィックスリストのファイル名 |
multi-gram.c の 902 行で定義されています。
参照元 opt_parse().
int multigram_get_all_num | ( | ) |
int multigram_get_gram_from_category | ( | int | category | ) |
単語カテゴリの属する文法を得る.
category | 単語カテゴリID |
multi-gram.c の 999 行で定義されています。
参照元 msock_pass2(), と ttyout_pass2().