#include <sent/stddefs.h>
#include <sent/vocabulary.h>
#include <sent/htk_hmm.h>
データ構造 | |
struct | DFA_ARC |
Transition arc of DFA [詳細] | |
struct | DFA_STATE |
State of DFA [詳細] | |
struct | TERM_INFO |
Information of each terminal symbol (=category) [詳細] | |
struct | DFA_INFO |
Top structure of a DFA [詳細] | |
マクロ定義 | |
#define | DFA_STATESTEP 1000 |
Allocation step of DFA state | |
#define | INITIAL_S 0x10000000 |
Status flag mask specifying an initial state | |
#define | ACCEPT_S 0x00000001 |
Status flag mask specifying an accept state | |
関数 | |
DFA_INFO * | dfa_info_new () |
Allocate a new grammar information data structure and initialize it. | |
void | dfa_info_free (DFA_INFO *dfa) |
Free all informations in the DFA_INFO. | |
void | dfa_state_init (DFA_INFO *dinfo) |
Initialize and allocate DFA state information list in the grammar. | |
void | dfa_state_expand (DFA_INFO *dinfo, int needed) |
Expand the state information list to the required length. | |
boolean | rddfa (FILE *fp, DFA_INFO *dinfo) |
Top loop function to read DFA grammar via file pointer | |
boolean | rddfa_fd (int fd, DFA_INFO *dinfo) |
Top loop function to read DFA grammar via file descriptor | |
boolean | rddfa_sd (int sd, DFA_INFO *dinfo) |
Top loop function to read DFA grammar via socket descriptor | |
boolean | rddfa_line (char *line, DFA_INFO *dinfo, int *state_max, int *arc_num, int *terminal_max) |
Parse the input line and set grammar information, one by line. | |
void | dfa_append (DFA_INFO *dst, DFA_INFO *src, int soffset, int coffset) |
Append the DFA state information to other | |
boolean | init_dfa (DFA_INFO *dinfo, char *filename) |
Read in a grammar file and set to DFA grammar structure | |
WORD_ID | dfa_symbol_lookup (DFA_INFO *dinfo, char *terminalname) |
Return category id corresponding to the given terminal name. | |
boolean | extract_cpair (DFA_INFO *dinfo) |
Extract category-pair constraint from DFA grammar and newly set the category pair matrix of the give DFA. | |
boolean | cpair_append (DFA_INFO *dst, DFA_INFO *src, int coffset) |
Append the category pair matrix at the last. | |
void | print_dfa_info (FILE *fp, DFA_INFO *dinfo) |
Output overall grammar information to stdout. | |
void | print_dfa_cp (FILE *fp, DFA_INFO *dinfo) |
Output the category-pair matrix in text format to stdout | |
boolean | dfa_cp (DFA_INFO *dfa, int i, int j) |
Return whether the given two category can be connected or not. | |
boolean | dfa_cp_begin (DFA_INFO *dfa, int i) |
Return whether the category can be appear at the beginning of sentence. | |
boolean | dfa_cp_end (DFA_INFO *dfa, int i) |
Return whether the category can be appear at the end of sentence. | |
void | set_dfa_cp (DFA_INFO *dfa, int i, int j, boolean value) |
Set the category-pair matrix bit | |
void | set_dfa_cp_begin (DFA_INFO *dfa, int i, boolean value) |
Set the category-pair matrix bit at the beginning of sentence | |
void | set_dfa_cp_end (DFA_INFO *dfa, int i, boolean value) |
Set the category-pair matrix bit at the end of sentence | |
void | init_dfa_cp (DFA_INFO *dfa) |
Initialize category pair matrix in the grammar data. | |
void | malloc_dfa_cp (DFA_INFO *dfa, int term_num) |
Allocate memory for category pair matrix and initialize it. | |
void | realloc_dfa_cp (DFA_INFO *dfa, int old_term_num, int new_term_num) |
Re-allocate memory for category pair matrix, can be called when the number of category is expanded. | |
void | free_dfa_cp (DFA_INFO *dfa) |
Free the category pair matrix from DFA grammar. | |
boolean | make_dfa_voca_ref (DFA_INFO *dinfo, WORD_INFO *winfo) |
Make correspondence between all words in dictionary and categories in grammar, both from a word to a category and from a category to words. | |
void | make_terminfo (TERM_INFO *tinfo, DFA_INFO *dinfo, WORD_INFO *winfo) |
Make a word list for each category. | |
void | free_terminfo (TERM_INFO *tinfo) |
Free word list for each category. | |
void | terminfo_append (TERM_INFO *dst, TERM_INFO *src, int coffset, int woffset) |
Append the terminal(category) word list. | |
void | dfa_find_pause_word (DFA_INFO *dfa, WORD_INFO *winfo, HTK_HMM_INFO *hmminfo) |
Find pause word and pause category information, and set to the grammar data. | |
boolean | dfa_pause_word_append (DFA_INFO *dst, DFA_INFO *src, int coffset) |
Append the pause word/category information at the last. | |
boolean | read_grammar_from_socket (int sd, DFA_INFO **ret_dfa, WORD_INFO **ret_winfo, HTK_HMM_INFO *hmminfo) |
Read grammar (DFA and dictionary) from socket and returns newly allocated grammars. |
このファイルには, DFAと呼ばれる有限状態文法の構造体が定義されています.
DFAは, 単語のカテゴリ番号を入力とする決定性オートマトンで,構文制約を 表現します.カテゴリごとの単語リストも保持します.
また,第1パスの認識のために,DFAカテゴリ間の接続関係のみを抜き出した 単語対情報も保持します.これは文法を読みだし後に内部でDFAから抽出されます.
dfa.h で定義されています。
DFA_INFO* dfa_info_new | ( | ) |
Allocate a new grammar information data structure and initialize it.
dfa_malloc.c の 34 行で定義されています。
参照元 multigram_read_file_and_add(), multigram_update(), と read_grammar_from_socket().
void dfa_info_free | ( | DFA_INFO * | dfa | ) |
Free all informations in the DFA_INFO.
dfa | [i/o] grammar information data to be freed. |
dfa_malloc.c の 55 行で定義されています。
参照元 j_process_lm_free(), multigram_exec_delete(), multigram_free_all(), multigram_read_file_and_add(), multigram_update(), と read_grammar_from_socket().
void dfa_state_init | ( | DFA_INFO * | dinfo | ) |
Initialize and allocate DFA state information list in the grammar.
dinfo | [i/o] DFA grammar |
参照元 multigram_update(), rddfa(), rddfa_fd(), と rddfa_sd().
void dfa_state_expand | ( | DFA_INFO * | dinfo, | |
int | needed | |||
) |
Expand the state information list to the required length.
dinfo | [i/o] DFA grammar | |
needed | [in] required new length |
参照元 dfa_append(), と rddfa_line().
boolean rddfa | ( | FILE * | fp, | |
DFA_INFO * | dinfo | |||
) |
Top loop function to read DFA grammar via file pointer
fp | [in] file pointer that points to the DFA grammar data | |
dinfo | [out] the read data will be stored in this DFA grammar structure |
参照元 init_dfa().
boolean rddfa_fd | ( | int | fd, | |
DFA_INFO * | dinfo | |||
) |
Top loop function to read DFA grammar via file descriptor
fd | [in] file descriptor that points to the DFA grammar data | |
dinfo | [out] the read data will be stored in this DFA grammar structure |
boolean rddfa_sd | ( | int | sd, | |
DFA_INFO * | dinfo | |||
) |
Top loop function to read DFA grammar via socket descriptor
sd | [in] socket descriptor that points to the DFA grammar data | |
dinfo | [out] the read data will be stored in this DFA grammar structure |
boolean rddfa_line | ( | char * | line, | |
DFA_INFO * | dinfo, | |||
int * | state_max, | |||
int * | arc_num, | |||
int * | terminal_max | |||
) |
Parse the input line and set grammar information, one by line.
line | [in] text buffer that holds a line of DFA file | |
dinfo | [i/o] the read data will be appended to this DFA data | |
state_max | [i/o] maximum number of state id appeared, will be updated | |
arc_num | [i/o] number of read arcs, will be updated | |
terminal_max | [i/o] maximum number of state id appended, will be updated |
参照元 rddfa(), rddfa_fd(), と rddfa_sd().
Append the DFA state information to other
dst | [i/o] DFA grammar | |
src | [i/o] DFA grammar to be appended to dst | |
soffset | [in] offset state number in dst where the new state should be stored | |
coffset | [in] category id offset in dst where the new data should be stored |
boolean init_dfa | ( | DFA_INFO * | dinfo, | |
char * | filename | |||
) |
Read in a grammar file and set to DFA grammar structure
dinfo | [i/o] a blank DFA data | |
filename | [in] DFA grammar file name |
init_dfa.c の 46 行で定義されています。
Return category id corresponding to the given terminal name.
Actually they are mere strings of ID itself.
dinfo | [in] DFA grammar information | |
terminalname | [in] name string |
dfa_lookup.c の 45 行で定義されています。
参照元 make_dfa_voca_ref().
boolean extract_cpair | ( | DFA_INFO * | dinfo | ) |
Extract category-pair constraint from DFA grammar and newly set the category pair matrix of the give DFA.
dinfo | [i/o] DFA grammar, in which the category-pair matrix will be created. |
参照元 multigram_update().
Append the category pair matrix at the last.
dst | [i/o] DFA grammar | |
src | [in] DFA grammar to be appended to dst | |
coffset | [in] category id in dst where the new data should be stored |
void print_dfa_info | ( | FILE * | fp, | |
DFA_INFO * | dinfo | |||
) |
Output overall grammar information to stdout.
fp | [in] file pointer | |
dinfo | [in] DFA grammar |
dfa_util.c の 35 行で定義されています。
参照元 print_engine_info().
void print_dfa_cp | ( | FILE * | fp, | |
DFA_INFO * | dinfo | |||
) |
Output the category-pair matrix in text format to stdout
fp | [in] file pointer | |
dinfo | [in] DFA grammar that holds category pair matrix |
dfa_util.c の 52 行で定義されています。
参照元 print_engine_info().
boolean dfa_cp | ( | DFA_INFO * | dfa, | |
int | i, | |||
int | j | |||
) |
Return whether the given two category can be connected or not.
dfa | [in] DFA grammar holding category pair matrix | |
i | [in] category id of left word | |
j | [in] category id of right word |
参照元 cpair_append(), と print_dfa_cp().
boolean dfa_cp_begin | ( | DFA_INFO * | dfa, | |
int | i | |||
) |
Return whether the category can be appear at the beginning of sentence.
dfa | [in] DFA grammar holding category pair matrix | |
i | [in] category id of the word |
参照元 cpair_append(), と print_dfa_cp().
boolean dfa_cp_end | ( | DFA_INFO * | dfa, | |
int | i | |||
) |
Return whether the category can be appear at the end of sentence.
dfa | [in] DFA grammar holding category pair matrix | |
i | [in] category id of the word |
参照元 cpair_append(), と print_dfa_cp().
void set_dfa_cp | ( | DFA_INFO * | dfa, | |
int | i, | |||
int | j, | |||
boolean | value | |||
) |
Set the category-pair matrix bit
dfa | [out] DFA grammar holding category pair matrix | |
i | [in] category id of left word | |
j | [in] category id of right word | |
value | TRUE if connection allowed, FALSE if connection prohibited. |
参照元 cpair_append(), extract_cpair(), malloc_dfa_cp(), と realloc_dfa_cp().
void set_dfa_cp_begin | ( | DFA_INFO * | dfa, | |
int | i, | |||
boolean | value | |||
) |
Set the category-pair matrix bit at the beginning of sentence
dfa | [out] DFA grammar holding category pair matrix | |
i | [in] category id of the word | |
value | TRUE if the category can appear at the beginning of sentence, FALSE if not. |
参照元 cpair_append(), extract_cpair(), malloc_dfa_cp(), と realloc_dfa_cp().
void set_dfa_cp_end | ( | DFA_INFO * | dfa, | |
int | i, | |||
boolean | value | |||
) |
Set the category-pair matrix bit at the end of sentence
dfa | [out] DFA grammar holding category pair matrix | |
i | [in] category id of the word | |
value | TRUE if the category can appear at the end of sentence, FALSE if not. |
参照元 cpair_append(), extract_cpair(), malloc_dfa_cp(), と realloc_dfa_cp().
void init_dfa_cp | ( | DFA_INFO * | dfa | ) |
Initialize category pair matrix in the grammar data.
dfa | [out] DFA grammar to hold category pair matrix |
参照元 dfa_info_new().
void malloc_dfa_cp | ( | DFA_INFO * | dfa, | |
int | term_num | |||
) |
Allocate memory for category pair matrix and initialize it.
dfa | [out] DFA grammar to hold category pair matrix | |
term_num | [in] number of categories in the grammar |
参照元 extract_cpair(), と realloc_dfa_cp().
void realloc_dfa_cp | ( | DFA_INFO * | dfa, | |
int | old_term_num, | |||
int | new_term_num | |||
) |
Re-allocate memory for category pair matrix, can be called when the number of category is expanded.
dfa | [I/O] DFA grammar holding category pair matrix | |
old_term_num | [in] number of categories when the last category pair matrix was allocated | |
new_term_num | [in] new number of categories in the grammar |
参照元 cpair_append().
void free_dfa_cp | ( | DFA_INFO * | dfa | ) |
Free the category pair matrix from DFA grammar.
dfa | [i/o] DFA grammar holding category pair matrix |
参照元 dfa_info_free().
Make correspondence between all words in dictionary and categories in grammar, both from a word to a category and from a category to words.
dinfo | [i/o] DFA grammar, category information will be built here. | |
winfo | [i/o] Word dictionary, word-to-category information will be build here. |
init_dfa.c の 74 行で定義されています。
Make a word list for each category.
tinfo | [i/o] terminal data structure to hold the result | |
dinfo | [in] DFA gammar to supply the number of category in the grammar | |
winfo | [in] word dictionary. |
mkterminfo.c の 39 行で定義されています。
参照元 make_dfa_voca_ref().
void free_terminfo | ( | TERM_INFO * | tinfo | ) |
Free word list for each category.
tinfo | [in] terminal data structure holding the content. |
mkterminfo.c の 75 行で定義されています。
Append the terminal(category) word list.
dst | [i/o] category data | |
src | [i/o] category data to be appended to dst | |
coffset | [in] category id offset in dst where the new data should be stored | |
woffset | [in] word id offset where the new data should be stored |
mkterminfo.c の 97 行で定義されています。
void dfa_find_pause_word | ( | DFA_INFO * | dfa, | |
WORD_INFO * | winfo, | |||
HTK_HMM_INFO * | hmminfo | |||
) |
Find pause word and pause category information, and set to the grammar data.
dfa | [i/o] DFA grammar, sp_id and is_sp will be built here. | |
winfo | [in] Word dictionary | |
hmminfo | [in] HTK HMM to provide which is short pause HMM |
init_dfa.c の 107 行で定義されています。
参照元 multigram_update().
Append the pause word/category information at the last.
dst | [i/o] DFA grammar | |
src | [in] DFA grammar to be appended to dst | |
coffset | appending category point in dst |
init_dfa.c の 138 行で定義されています。
boolean read_grammar_from_socket | ( | int | sd, | |
DFA_INFO ** | ret_dfa, | |||
WORD_INFO ** | ret_winfo, | |||
HTK_HMM_INFO * | hmminfo | |||
) |
Read grammar (DFA and dictionary) from socket and returns newly allocated grammars.
sd | [in] socket descpriter | |
ret_dfa | [out] read DFA | |
ret_winfo | [out] read dictionary | |
hmminfo | [in] HMM definition |
init_dfa.c の 178 行で定義されています。