47 #ifndef __FSG_MODEL_H__
48 #define __FSG_MODEL_H__
61 #include <sphinxbase/sphinxbase_export.h>
74 #define fsg_link_from_state(l) ((l)->from_state)
75 #define fsg_link_to_state(l) ((l)->to_state)
76 #define fsg_link_wid(l) ((l)->wid)
77 #define fsg_link_logs2prob(l) ((l)->logs2prob)
110 #define fsg_model_name(f) ((f)->name)
111 #define fsg_model_n_state(f) ((f)->n_state)
112 #define fsg_model_start_state(f) ((f)->start_state)
113 #define fsg_model_final_state(f) ((f)->final_state)
114 #define fsg_model_log(f,p) logmath_log((f)->lmath, p)
115 #define fsg_model_lw(f) ((f)->lw)
116 #define fsg_model_n_word(f) ((f)->n_word)
117 #define fsg_model_word_str(f,wid) (wid == -1 ? "(NULL)" : (f)->vocab[wid])
127 #define fsg_model_has_sil(f) ((f)->silwords != NULL)
132 #define fsg_model_has_alt(f) ((f)->altwords != NULL)
134 #define fsg_model_is_filler(f,wid) \
135 (fsg_model_has_sil(f) ? bitvec_is_set((f)->silwords, wid) : FALSE)
136 #define fsg_model_is_alt(f,wid) \
137 (fsg_model_has_alt(f) ? bitvec_is_set((f)->altwords, wid) : FALSE)
144 float32 lw, int32 n_state);
216 int fsg_model_word_add(
fsg_model_t *fsg,
char const *word);
224 int fsg_model_word_id(
fsg_model_t *fsg,
char const *word);
234 int32 from, int32 to, int32 logp, int32 wid);
247 int32 fsg_model_null_trans_add(
fsg_model_t * fsg, int32 from, int32 to, int32 logp);
264 int32 fsg_model_tag_trans_add(
fsg_model_t * fsg, int32 from, int32 to,
265 int32 logp, int32 wid);
318 int fsg_model_add_silence(
fsg_model_t * fsg,
char const *silword,
319 int state, float32 silprob);
325 int fsg_model_add_alt(
fsg_model_t * fsg,
char const *baseword,
326 char const *altword);
338 void fsg_model_writefile(
fsg_model_t *fsg,
char const *file);
344 void fsg_model_write_fsm(
fsg_model_t *fsg, FILE *fp);
350 void fsg_model_writefile_fsm(
fsg_model_t *fsg,
char const *file);
356 void fsg_model_write_symtab(
fsg_model_t *fsg, FILE *file);
362 void fsg_model_writefile_symtab(
fsg_model_t *fsg,
char const *file);