#include <julius.h>
wchmm.cのインクルード依存関係図
マクロ定義 | |
#define | COUNT_STEP 500 |
Word count step for debug progress output | |
関数 | |
WCHMM_INFO * | wchmm_new () |
static void | wchmm_init (WCHMM_INFO *wchmm) |
static void | wchmm_extend (WCHMM_INFO *wchmm) |
void | wchmm_free (WCHMM_INFO *w) |
static int | compare_wseq (WORD_ID *widx1, WORD_ID *widx2) |
static void | wchmm_sort_idx_by_wseq (WORD_INFO *winfo, WORD_ID *windex, WORD_ID bgn, WORD_ID len) |
static int | compare_category (WORD_ID *widx1, WORD_ID *widx2) |
static void | wchmm_sort_idx_by_category (WORD_INFO *winfo, WORD_ID *windex, WORD_ID len) |
static int | wchmm_check_match (WORD_INFO *winfo, int i, int j) |
static void | add_wacc (WCHMM_INFO *wchmm, int node, LOGPROB a, int arc) |
static void | wchmm_link_hmm (WCHMM_INFO *wchmm, int from_node, int to_node, HTK_HMM_Trans *tinfo) |
static void | wchmm_link_subword (WCHMM_INFO *wchmm, int from_word, int from_seq, int to_word, int to_seq) |
static void | wchmm_duplicate_state (WCHMM_INFO *wchmm, int node, int word) |
static void | wchmm_duplicate_leafnode (WCHMM_INFO *wchmm) |
static void | wchmm_add_word (WCHMM_INFO *wchmm, int word, int matchlen, int matchword) |
static void | wchmm_index_ststart (WCHMM_INFO *wchmm) |
static void | wchmm_calc_wordend_arc (WCHMM_INFO *wchmm) |
void | build_wchmm (WCHMM_INFO *wchmm) |
void | build_wchmm2 (WCHMM_INFO *wchmm) |
void | print_wchmm_info (WCHMM_INFO *wchmm) |
変数 | |
static int | dupcount = 0 |
Number of duplicated nodes (for debug only) If defined, do wchmm size estimation (for debug only) | |
static WORD_INFO * | local_winfo |
Temporary work area for sort callbacks | |
static int | separated_word_count |
Number of words actually separated (linearlized) from the tree |
開発の経緯上,ソース内では木構造化辞書は wchmm (word-conjunction HMM) と も表現されています.
wchmm.c で定義されています。
WCHMM_INFO* wchmm_new | ( | ) |
木構造化辞書を新たに割り付ける.
static void wchmm_init | ( | WCHMM_INFO * | wchmm | ) | [static] |
木構造化辞書の内容を初期化する.
wchmm | [out] 木構造化辞書へのポインタ |
static void wchmm_extend | ( | WCHMM_INFO * | wchmm | ) | [static] |
木構造化辞書の状態格納領域を MAXWCNSTEP 分だけ伸長する.
wchmm | [i/o] 木構造化辞書 |
void wchmm_free | ( | WCHMM_INFO * | w | ) |
単語を音素のならびでソートするqsort関数
widx1 | [in] 単語ID 1 へのポインタ | |
widx2 | [in] 単語ID 2 へのポインタ |
static void wchmm_sort_idx_by_wseq | ( | WORD_INFO * | winfo, | |
WORD_ID * | windex, | |||
WORD_ID | bgn, | |||
WORD_ID | len | |||
) | [static] |
単語IDの集合 windex[bgn..bgn+len-1] を単語の音素ならびでソートする.
winfo | [in] 単語辞書 | |
windex | [i/o] 単語IDのインデックス列(内部でソートされる) | |
bgn | [in] windex のソート開始点 | |
len | [in] windex の bgn からのソートする要素数 |
参照元 build_wchmm2().
単語をカテゴリIDでソートするqsort関数.
widx1 | [in] 要素1へのポインタ | |
widx2 | [in] 要素2へのポインタ |
static void wchmm_sort_idx_by_category | ( | WORD_INFO * | winfo, | |
WORD_ID * | windex, | |||
WORD_ID | len | |||
) | [static] |
単語ID集合 windex[0..len-1] をカテゴリIDでソートする.
winfo | [in] 単語辞書 | |
windex | [i/o] 単語IDのインデックス列(内部でソートされる) | |
len | [in] windex の要素数 |
参照元 build_wchmm2().
static int wchmm_check_match | ( | WORD_INFO * | winfo, | |
int | i, | |||
int | j | |||
) | [static] |
static void add_wacc | ( | WCHMM_INFO * | wchmm, | |
int | node, | |||
LOGPROB | a, | |||
int | arc | |||
) | [static] |
木構造化辞書のあるノードに,別のノードへの遷移を追加する
wchmm | [i/o] 木構造化辞書 | |
node | [in] ノード番号 | |
a | [in] 遷移確率(対数) | |
arc | [in] 遷移先のノード番号 |
static void wchmm_link_hmm | ( | WCHMM_INFO * | wchmm, | |
int | from_node, | |||
int | to_node, | |||
HTK_HMM_Trans * | tinfo | |||
) | [static] |
ある音素の末尾の状態から,ある音素の先頭状態への遷移を追加する.
wchmm | [i/o] 木構造化辞書 | |
from_node | [in] ある音素の末尾の状態 | |
to_node | [in] ある音素の先頭状態 | |
tinfo | [in] from_node の属する音素HMMの遷移確率行列 |
参照元 wchmm_link_subword().
static void wchmm_link_subword | ( | WCHMM_INFO * | wchmm, | |
int | from_word, | |||
int | from_seq, | |||
int | to_word, | |||
int | to_seq | |||
) | [static] |
static void wchmm_duplicate_state | ( | WCHMM_INFO * | wchmm, | |
int | node, | |||
int | word | |||
) | [static] |
単語終端状態の独立化:与えられた単語の終端ノードをコピーして, 新たにある単語の最終状態として定義する.
wchmm | [i/o] 木構造化辞書 | |
node | [in] 同音語の終端ノード番号 | |
word | [in] 新たに登録する単語 |
static void wchmm_duplicate_leafnode | ( | WCHMM_INFO * | wchmm | ) | [static] |
static void wchmm_add_word | ( | WCHMM_INFO * | wchmm, | |
int | word, | |||
int | matchlen, | |||
int | matchword | |||
) | [static] |
木構造化辞書に新たに単語を追加する.追加場所の情報として,現在の木構造化 辞書内で最もその単語と先頭から良くマッチする単語,およびそのマッチする長さ を指定する.
wchmm | [i/o] 木構造化辞書 | |
word | [in] 追加する辞書単語のID | |
matchlen | [in] word と matchword の先頭からマッチする音素長 | |
matchword | [in] 既存の木構造化辞書中で word と最もマッチする単語 |
参照元 build_wchmm().
static void wchmm_index_ststart | ( | WCHMM_INFO * | wchmm | ) | [static] |
static void wchmm_calc_wordend_arc | ( | WCHMM_INFO * | wchmm | ) | [static] |
void build_wchmm | ( | WCHMM_INFO * | wchmm | ) |
与えられた単語辞書と言語モデルから木構造化辞書を構築する.この関数は 処理が遅く,Julianで"-oldtree"オプション指定時のみ使用されます.オプション 非指定時およびJuliusでは代わりに build_wchmm2() が用いられます.
wchmm | [i/o] 木構造化辞書 |
void build_wchmm2 | ( | WCHMM_INFO * | wchmm | ) |
与えられた単語辞書と言語モデルから木構造化辞書を構築する. この関数は bulid_wchmm() と同じ処理を行いますが, 最初に単語を音素列でソートして音素列の似た順に単語を並べるため, より高速に木構造化を行うことができる.とくにオプション指定をしない 限り,Julius/Julianではこちらが用いられる.
wchmm | [i/o] 木構造化辞書 |
void print_wchmm_info | ( | WCHMM_INFO * | wchmm | ) |