#include <sent/stddefs.h>
#include <sent/htk_defs.h>
#include <sent/ptree.h>
#include <sent/mfcc.h>
#include <sent/htk_param.h>
Go to the source code of this file.
Data Structures | |
struct | HTK_HMM_StreamInfo |
Stream information (although current Julius supports only single stream). More... | |
struct | HTK_HMM_Options |
HMM Option More... | |
struct | _HTK_HMM_trans |
HMM transition table More... | |
struct | _HTK_HMM_variance |
HMM variance data More... | |
struct | _HTK_HMM_dens |
HMM Gaussian density (or mixture) data More... | |
struct | _HTK_HMM_stream_weight |
HMM stream weight definition More... | |
struct | _HTK_HMM_PDF |
HMM mixture PDF for a stream More... | |
struct | _HTK_HMM_state |
HMM state data More... | |
struct | _HTK_HMM_data |
Top HMM model, corresponds to "~h" macro in hmmdefs. More... | |
struct | GCODEBOOK |
Gaussian mixture codebook in tied-mixture model. More... | |
struct | GS_SET |
Set of HMM states for Gaussian Mixture Selection. More... | |
struct | CD_State_Set |
Context-dependent state set, equivalent to HTK_HMM_State, part of pseudo phone. More... | |
struct | _cd_set |
Context-dependent HMM set (called "pseudo") for a logical context. More... | |
struct | HMM_CDSET_INFO |
Top structure to hold all the HMM sets. More... | |
struct | _HMM_logical |
Logical HMM to map logical names to physical/pseudo HMM. More... | |
struct | BASEPHONE |
Basephone information extracted from hmminfo. More... | |
struct | HMM_basephone |
List of all basephone in hmminfo. More... | |
struct | HTK_HMM_INFO |
Top HMM structure that holds all the HTK HMM definition. More... | |
Defines | |
#define | currentis(A) (!strcasecmp(A, rdhmmdef_token)) |
Macro to check whether the next token is "A". | |
#define | NoTokErr(S) if (!rdhmmdef_token) rderr(S) |
Macro to jump to error if no token left. | |
#define | HMMDEF_DELM " \t\n<>" |
Delimiter string for parsing HMM definition file. | |
#define | MAX_STATE_NUM 2147483647 |
Possible maximum value of state ID (in unsigned short). | |
#define | HMM_RC_DLIM "+" |
Delimiter strings/characters to generate logical triphone names Right context delimiter in string. | |
#define | HMM_LC_DLIM "-" |
Left context delimiter in string. | |
#define | HMM_RC_DLIM_C '+' |
Right context delimiter in character. | |
#define | HMM_LC_DLIM_C '-' |
Left context delimiter in character. | |
#define | SPMODEL_NAME_DEFAULT "sp" |
Default logical name of short pause model. | |
#define | MAX_HMMNAME_LEN 256 |
Length limit of HMM name (including ones generated in Julius). | |
Typedefs | |
typedef _HTK_HMM_trans | HTK_HMM_Trans |
HMM transition table | |
typedef _HTK_HMM_variance | HTK_HMM_Var |
HMM variance data | |
typedef _HTK_HMM_dens | HTK_HMM_Dens |
HMM Gaussian density (or mixture) data | |
typedef _HTK_HMM_stream_weight | HTK_HMM_StreamWeight |
HMM stream weight definition | |
typedef _HTK_HMM_PDF | HTK_HMM_PDF |
HMM mixture PDF for a stream | |
typedef _HTK_HMM_state | HTK_HMM_State |
HMM state data | |
typedef _HTK_HMM_data | HTK_HMM_Data |
Top HMM model, corresponds to "~h" macro in hmmdefs. | |
typedef _cd_set | CD_Set |
Context-dependent HMM set (called "pseudo") for a logical context. | |
typedef _HMM_logical | HMM_Logical |
Logical HMM to map logical names to physical/pseudo HMM. | |
Enumerations | |
enum | iwcd_type { IWCD_UNDEF, IWCD_MAX, IWCD_AVG, IWCD_NBEST } |
Specify method of calculating approximated acoustic score at inter-word context pseudo phones on word edge. More... | |
Functions | |
void | htk_hmm_set_pause_model (HTK_HMM_INFO *hmminfo, char *spmodel_name) |
Set up pause model. | |
void | rderr (char *str) |
Output error message, with current reading status, and terminate. | |
char * | read_token (FILE *fp) |
Read next token and ste it to rdhmmdef_token. | |
boolean | rdhmmdef (FILE *, HTK_HMM_INFO *) |
Main top routine to read in HTK HMM definition file. | |
void | htk_hmm_inverse_variances (HTK_HMM_INFO *hmm) |
Invert all the variance values. | |
boolean | set_global_opt (FILE *fp, HTK_HMM_INFO *hmm) |
Set global options starting at the current token to HMM definition data. | |
char * | get_cov_str (short covtype) |
Get covariance option name string from its type code. | |
char * | get_dur_str (short durtype) |
Get duration option name string from its type code. | |
void | trans_add (HTK_HMM_INFO *hmm, HTK_HMM_Trans *newParam) |
Add a new data to the global structure. | |
HTK_HMM_Trans * | get_trans_data (FILE *, HTK_HMM_INFO *) |
Return a pointer to the data located at the current point. | |
void | def_trans_macro (char *, FILE *, HTK_HMM_INFO *) |
Read a new data and store it as a macro. | |
HTK_HMM_State * | get_state_data (FILE *, HTK_HMM_INFO *) |
Return a pointer to the data located at the current point. | |
void | def_state_macro (char *, FILE *, HTK_HMM_INFO *) |
Read a new data and store it as a macro. | |
HTK_HMM_State * | state_lookup (HTK_HMM_INFO *hmm, char *keyname) |
Look up a data macro by the name. | |
void | state_add (HTK_HMM_INFO *hmm, HTK_HMM_State *newParam) |
Add a new data to the global structure. | |
void | mpdf_add (HTK_HMM_INFO *hmm, HTK_HMM_PDF *newParam) |
Add a new data to the global structure. | |
HTK_HMM_PDF * | mpdf_lookup (HTK_HMM_INFO *hmm, char *keyname) |
Look up a data macro by the name. | |
HTK_HMM_PDF * | get_mpdf_data (FILE *fp, HTK_HMM_INFO *hmm, int mix_num, short stream_id) |
Return a pointer to the data located at the current point. | |
void | def_mpdf_macro (char *name, FILE *fp, HTK_HMM_INFO *hmm) |
Read a new data and store it as a macro. | |
HTK_HMM_Dens * | get_dens_data (FILE *, HTK_HMM_INFO *) |
Return a pointer to the data located at the current point. | |
void | def_dens_macro (char *, FILE *, HTK_HMM_INFO *) |
Read a new data and store it as a macro. | |
HTK_HMM_Dens * | dens_lookup (HTK_HMM_INFO *hmm, char *keyname) |
Look up a data macro by the name. | |
void | dens_add (HTK_HMM_INFO *hmm, HTK_HMM_Dens *newParam) |
Add a new data to the global structure. | |
HTK_HMM_Var * | get_var_data (FILE *, HTK_HMM_INFO *) |
Return a pointer to the data located at the current point. | |
void | def_var_macro (char *, FILE *, HTK_HMM_INFO *) |
Read a new data and store it as a macro. | |
void | var_add (HTK_HMM_INFO *hmm, HTK_HMM_Var *newParam) |
Add a new data to the global structure. | |
HTK_HMM_StreamWeight * | get_streamweight_data (FILE *fp, HTK_HMM_INFO *hmm) |
Return a pointer to the data located at the current point. | |
void | def_streamweight_macro (char *, FILE *, HTK_HMM_INFO *) |
Read a stream weight definition and store it as a macro. | |
void | sw_add (HTK_HMM_INFO *hmm, HTK_HMM_StreamWeight *newParam) |
Add a new data to the global structure. | |
void | def_HMM (char *, FILE *, HTK_HMM_INFO *) |
Read a new data and store it as a macro. | |
HTK_HMM_Data * | htk_hmmdata_new (HTK_HMM_INFO *) |
Allocate a new data and return it. | |
void | htk_hmmdata_add (HTK_HMM_INFO *hmm, HTK_HMM_Data *newParam) |
Add a new data to the global structure. | |
void | tmix_read (FILE *fp, HTK_HMM_PDF *mpdf, HTK_HMM_INFO *hmm) |
Read a codebook name and weights, build the codebook structure on demand, and assigns them to the current mixture PDF. | |
void | codebook_add (HTK_HMM_INFO *hmm, GCODEBOOK *newParam) |
Add a new data to the global structure. | |
void | def_regtree_macro (char *name, FILE *fp, HTK_HMM_INFO *hmm) |
Skip a regression tree data or its macro reference. | |
boolean | rdhmmlist (FILE *fp, HTK_HMM_INFO *hmminfo) |
Read a HMMList file and build initial logical triphone list. | |
boolean | save_hmmlist_bin (FILE *fp, HTK_HMM_INFO *hmminfo) |
boolean | load_hmmlist_bin (FILE *fp, HTK_HMM_INFO *hmminfo) |
void | put_htk_trans (FILE *fp, HTK_HMM_Trans *t) |
Output transition matrix. | |
void | put_htk_var (FILE *fp, HTK_HMM_Var *v) |
Output variance vector (diagonal). | |
void | put_htk_dens (FILE *fp, HTK_HMM_Dens *d) |
Output a density information, mean and variance. | |
void | put_htk_mpdf (FILE *fp, HTK_HMM_PDF *m) |
Output a mixture component. | |
void | put_htk_state (FILE *fp, HTK_HMM_State *s) |
Output a state. | |
void | put_htk_hmm (FILE *fp, HTK_HMM_Data *h) |
Output HMM model, number of states and information for each state. | |
void | put_logical_hmm (FILE *fp, HMM_Logical *l) |
Output logical HMM data and its mapping status. | |
void | print_hmmdef_info (FILE *fp, HTK_HMM_INFO *) |
Output total statistic informations of the HMM definition data. | |
HTK_HMM_INFO * | hmminfo_new () |
Allocate memory for a new HMM definition data. | |
boolean | hmminfo_free (HTK_HMM_INFO *) |
Free memory of an HMM. | |
boolean | init_hmminfo (HTK_HMM_INFO *hmminfo, char *filename, char *mapfile, Value *para) |
Load HTK HMM definition file and HMMList file, and setup phone HMM information. | |
HTK_HMM_Data * | htk_hmmdata_lookup_physical (HTK_HMM_INFO *, char *) |
Look up physical (defined in HTK HMM definition file) HMM by its name. | |
HMM_Logical * | htk_hmmdata_lookup_logical (HTK_HMM_INFO *, char *) |
Look up logical HMM by its name. | |
void | hmm_add_physical_to_logical (HTK_HMM_INFO *) |
Add all physical HMM to logical HMM. | |
void | hmm_add_pseudo_phones (HTK_HMM_INFO *hmminfo) |
Update logical HMM list by adding all the possible pseudo monophone and biphone to the list. | |
void | make_hmm_basephone_list (HTK_HMM_INFO *hmminfo) |
Build a list of base phones by gathering center phones of the defined HMM. | |
boolean | htk_hmm_has_several_arc_on_edge (HTK_HMM_INFO *hmminfo) |
Return TRUE if it has more than one arc from initial state, or to the final state. | |
boolean | check_hmm_limit (HTK_HMM_Data *dt) |
Check if the transition matrix conforms the ristrictions of Julius. | |
boolean | check_all_hmm_limit (HTK_HMM_INFO *hmm) |
Check all the HMM definitions in a HTK HMM definition data. | |
boolean | check_hmm_options (HTK_HMM_INFO *hmm) |
Check if the required parameter type in this HMM can be handled by Julius. | |
boolean | is_skippable_model (HTK_HMM_Data *d) |
Check if the model has direct transition from initial state to final state, skipping all the output state. | |
boolean | guess_if_cd_hmm (HTK_HMM_INFO *hmm) |
Guess whether the given HMM definition contains context-dependent modeling, just by the naming rule. | |
HMM_Logical * | get_right_context_HMM (HMM_Logical *base, char *rc_name, HTK_HMM_INFO *hmminfo) |
Search for right context HMM in logical HMM. | |
HMM_Logical * | get_left_context_HMM (HMM_Logical *base, char *lc_name, HTK_HMM_INFO *hmminfo) |
Search for left context HMM in logical HMM. | |
void | add_right_context (char name[], char *rc) |
Generate context-dependent phone name from base phone name and its right context phone name. | |
void | add_left_context (char name[], char *lc) |
Generate context-dependent phone name from base phone name and its left context phone name. | |
char * | center_name (char *hmmname, char *buf) |
Extract the center phone name and copy to the specified buffer. | |
char * | leftcenter_name (char *hmmname, char *buf) |
Return "left - center" phone name, modifying buf. | |
char * | rightcenter_name (char *hmmname, char *buf) |
Return "center + right" phone name, modifying buf. | |
boolean | regist_cdset (APATNODE **root, HTK_HMM_Data *d, char *cdname, BMALLOC_BASE **mroot) |
Register a physical HMM as a member of a pseudo phone set. | |
boolean | make_cdset (HTK_HMM_INFO *hmminfo) |
Construct the whole pseudo HMM information, and also add them to the logical Triphone tree. | |
void | put_all_cdinfo (HTK_HMM_INFO *hmminfo) |
Output all pseudo phone set information to stdout. | |
void | free_cdset (APATNODE **root, BMALLOC_BASE **mroot) |
Remove all the registered category-indexed pseudo state sets. | |
CD_Set * | cdset_lookup (HTK_HMM_INFO *hmminfo, char *cdstr) |
Look up for a pseudo phone with the name, and return the content. | |
CD_Set * | lcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname) |
Look up for a pseudo phone by the "left - center" name of the given phone name. | |
CD_Set * | rcdset_lookup_by_hmmname (HTK_HMM_INFO *hmminfo, char *hmmname) |
Look up for a pseudo phone by the "center + right" name of the given phone name. | |
int | hmm_logical_state_num (HMM_Logical *lg) |
Generic function to get the number of states in a logical HMM. | |
HTK_HMM_Trans * | hmm_logical_trans (HMM_Logical *lg) |
Generic function to get transition matrix of a logical HMM. | |
boolean | check_param_coherence (HTK_HMM_INFO *hmm, HTK_Param *pinfo) |
Check if an input parameter type exactly matches that of HMM. | |
boolean | check_param_basetype (HTK_HMM_INFO *hmm, HTK_Param *pinfo) |
Check if the base type of input parameter matches that of HMM. | |
int | param_check_and_adjust (HTK_HMM_INFO *hmm, HTK_Param *pinfo, boolean vflag) |
Top function to adjust parameter. | |
boolean | write_binhmm (FILE *fp, HTK_HMM_INFO *hmm, Value *para) |
Top function to write HMM definition data to a binary file. | |
boolean | read_binhmm (FILE *fp, HTK_HMM_INFO *hmm, boolean gzfile_p, Value *para) |
Top function to read a binary HMM file from fp. |
This file defines data structures for HMM definition file in HTK format.
Definition in file htk_hmm.h.
void htk_hmm_set_pause_model | ( | HTK_HMM_INFO * | hmminfo, | |
char * | spmodel_name | |||
) |
Set up pause model.
hmminfo | [i/o] HMM definition data | |
spmodel_name | [in] name string of short pause model |
Definition at line 238 of file init_phmm.c.
Referenced by initialize_HMM().
void rderr | ( | char * | str | ) |
Output error message, with current reading status, and terminate.
str | [in] error string |
Definition at line 61 of file rdhmmdef.c.
Referenced by codebook_add(), def_mpdf_macro(), def_regtree_macro(), dens_add(), dens_read(), get_dens_data(), get_mpdf_data(), get_opttype_str(), get_state_data(), get_streamweight_data(), get_trans_data(), get_var_data(), htk_hmmdata_add(), htk_hmmdata_read(), mpdf_add(), mpdf_read(), rdhmmdef(), read_global_opt(), state_add(), state_read(), sw_add(), sw_read(), tmix_read(), trans_add(), trans_read(), var_add(), and var_read().
char* read_token | ( | FILE * | fp | ) |
Read next token and ste it to rdhmmdef_token.
fp | [in] file pointer |
Definition at line 80 of file rdhmmdef.c.
Referenced by dens_read(), get_dens_data(), get_mpdf_data(), get_state_data(), get_streamweight_data(), get_trans_data(), get_var_data(), htk_hmmdata_read(), mpdf_read(), rdhmmdef(), read_global_opt(), regtree_read(), state_read(), sw_read(), tmix_read(), trans_read(), and var_read().
boolean rdhmmdef | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm | |||
) |
Main top routine to read in HTK HMM definition file.
A HTK HMM definition file will be read from fp. After reading, the parameter type is checked and calculate some statistics.
fp | [in] file pointer | |
hmm | [out] pointer to a HMM definition structure to store data. |
Definition at line 184 of file rdhmmdef.c.
Referenced by init_hmminfo().
void htk_hmm_inverse_variances | ( | HTK_HMM_INFO * | hmm | ) |
Invert all the variance values.
hmm | [i/o] HMM definition data to modify. |
Definition at line 130 of file rdhmmdef.c.
Referenced by gmm_init(), outprob_init(), rdhmmdef(), and read_binhmm().
boolean set_global_opt | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm | |||
) |
Set global options starting at the current token to HMM definition data.
fp | [in] file pointer | |
hmm | [out] HMM definition data to store the global options |
Definition at line 146 of file rdhmmdef_options.c.
Referenced by rdhmmdef().
char* get_cov_str | ( | short | covtype | ) |
Get covariance option name string from its type code.
covtype | [in] type code to search |
Definition at line 197 of file rdhmmdef_options.c.
char* get_dur_str | ( | short | durtype | ) |
Get duration option name string from its type code.
durtype | [in] type code to search |
Definition at line 210 of file rdhmmdef_options.c.
void trans_add | ( | HTK_HMM_INFO * | hmm, | |
HTK_HMM_Trans * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 61 of file rdhmmdef_trans.c.
Referenced by def_trans_macro(), get_trans_data(), and rd_trans().
HTK_HMM_Trans* get_trans_data | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm | |||
) |
Return a pointer to the data located at the current point.
If the current point is a macro reference, the pointer to the already defined data will be searched and returned. Otherwise, the definition of the data will be read from the current point and pointer to the newly allocated data will be returned.
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 173 of file rdhmmdef_trans.c.
Referenced by htk_hmmdata_read().
void def_trans_macro | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a new data and store it as a macro.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 208 of file rdhmmdef_trans.c.
Referenced by rdhmmdef().
HTK_HMM_State* get_state_data | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm | |||
) |
Return a pointer to the data located at the current point.
If the current point is a macro reference, the pointer to the already defined data will be searched and returned. Otherwise, the definition of the data will be read from the current point and pointer to the newly allocated data will be returned.
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 187 of file rdhmmdef_state.c.
Referenced by htk_hmmdata_read().
void def_state_macro | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a new data and store it as a macro.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 224 of file rdhmmdef_state.c.
Referenced by rdhmmdef().
HTK_HMM_State* state_lookup | ( | HTK_HMM_INFO * | hmm, | |
char * | keyname | |||
) |
Look up a data macro by the name.
hmm | [in] HMM definition data | |
keyname | [in] macro name to find |
Definition at line 96 of file rdhmmdef_state.c.
Referenced by get_state_data().
void state_add | ( | HTK_HMM_INFO * | hmm, | |
HTK_HMM_State * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 62 of file rdhmmdef_state.c.
Referenced by def_state_macro(), get_state_data(), and rd_state().
void mpdf_add | ( | HTK_HMM_INFO * | hmm, | |
HTK_HMM_PDF * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 60 of file rdhmmdef_mpdf.c.
Referenced by def_mpdf_macro(), get_mpdf_data(), rd_mpdf(), and rd_state().
HTK_HMM_PDF* mpdf_lookup | ( | HTK_HMM_INFO * | hmm, | |
char * | keyname | |||
) |
Look up a data macro by the name.
hmm | [in] HMM definition data | |
keyname | [in] macro name to find |
Definition at line 93 of file rdhmmdef_mpdf.c.
Referenced by get_mpdf_data().
HTK_HMM_PDF* get_mpdf_data | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm, | |||
int | mix_num, | |||
short | stream_id | |||
) |
Return a pointer to the data located at the current point.
If the current point is a macro reference, the pointer to the already defined data will be searched and returned. Otherwise, the definition of the data will be read from the current point and pointer to the newly allocated data will be returned.
fp | [in] file pointer | |
hmm | [i/o] HMM definition data | |
mix_num | [in] num of Gaussians to be read, or -1 if not specified | |
stream_id | [in] stream ID, or -1 if not specified yet |
Definition at line 217 of file rdhmmdef_mpdf.c.
Referenced by state_read().
void def_mpdf_macro | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a new data and store it as a macro.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 265 of file rdhmmdef_mpdf.c.
Referenced by rdhmmdef().
HTK_HMM_Dens* get_dens_data | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm | |||
) |
Return a pointer to the data located at the current point.
If the current point is a macro reference, the pointer to the already defined data will be searched and returned. Otherwise, the definition of the data will be read from the current point and pointer to the newly allocated data will be returned.
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 200 of file rdhmmdef_dens.c.
Referenced by mpdf_read().
void def_dens_macro | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a new data and store it as a macro.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 234 of file rdhmmdef_dens.c.
Referenced by rdhmmdef().
HTK_HMM_Dens* dens_lookup | ( | HTK_HMM_INFO * | hmm, | |
char * | keyname | |||
) |
Look up a data macro by the name.
hmm | [in] HMM definition data | |
keyname | [in] macro name to find |
Definition at line 113 of file rdhmmdef_dens.c.
Referenced by get_dens_data(), and tmix_create_codebook_index().
void dens_add | ( | HTK_HMM_INFO * | hmm, | |
HTK_HMM_Dens * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 80 of file rdhmmdef_dens.c.
Referenced by def_dens_macro(), get_dens_data(), and rd_dens().
HTK_HMM_Var* get_var_data | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm | |||
) |
Return a pointer to the data located at the current point.
If the current point is a macro reference, the pointer to the already defined data will be searched and returned. Otherwise, the definition of the data will be read from the current point and pointer to the newly allocated data will be returned.
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 163 of file rdhmmdef_var.c.
Referenced by dens_read().
void def_var_macro | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a new data and store it as a macro.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 198 of file rdhmmdef_var.c.
Referenced by rdhmmdef().
void var_add | ( | HTK_HMM_INFO * | hmm, | |
HTK_HMM_Var * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 59 of file rdhmmdef_var.c.
Referenced by def_var_macro(), get_var_data(), and rd_var().
HTK_HMM_StreamWeight* get_streamweight_data | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm | |||
) |
Return a pointer to the data located at the current point.
If the current point is a macro reference, the pointer to the already defined data will be searched and returned. Otherwise, the definition of the data will be read from the current point and pointer to the newly allocated data will be returned.
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 159 of file rdhmmdef_streamweight.c.
Referenced by state_read().
void def_streamweight_macro | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a stream weight definition and store it as a macro.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 194 of file rdhmmdef_streamweight.c.
Referenced by rdhmmdef().
void sw_add | ( | HTK_HMM_INFO * | hmm, | |
HTK_HMM_StreamWeight * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 57 of file rdhmmdef_streamweight.c.
Referenced by def_streamweight_macro(), get_streamweight_data(), and rd_streamweight().
void def_HMM | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a new data and store it as a macro.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [i/o] HMM definition data |
Definition at line 160 of file rdhmmdef_data.c.
Referenced by rdhmmdef().
HTK_HMM_Data* htk_hmmdata_new | ( | HTK_HMM_INFO * | hmminfo | ) |
Allocate a new data and return it.
Definition at line 36 of file rdhmmdef_data.c.
Referenced by htk_hmmdata_read().
void htk_hmmdata_add | ( | HTK_HMM_INFO * | hmm, | |
HTK_HMM_Data * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 58 of file rdhmmdef_data.c.
void tmix_read | ( | FILE * | fp, | |
HTK_HMM_PDF * | mpdf, | |||
HTK_HMM_INFO * | hmm | |||
) |
Read a codebook name and weights, build the codebook structure on demand, and assigns them to the current mixture PDF.
The required codebook on the current token will be assigned to this mpdf. If the corresponding codebook structure is not built yet, it will be constructed here on demand by gathering corresponding mixture density definitions. Then this mpdf will store the pointer to the codebook, together with its own mixture weights in the following tokens.
fp | [in] file pointer | |
mpdf | [i/o] current HMM mixture PDF to hold pointer to the codebook and their weights | |
hmm | [i/o] HMM definition data, codebook statistics and tied-mixture marker will be modified. |
Definition at line 137 of file rdhmmdef_tiedmix.c.
Referenced by mpdf_read().
void codebook_add | ( | HTK_HMM_INFO * | hmm, | |
GCODEBOOK * | new | |||
) |
Add a new data to the global structure.
hmm | [i/o] HMM definition data to store it | |
new | [in] new data to be added |
Definition at line 59 of file rdhmmdef_tiedmix.c.
Referenced by rd_tmix(), and tmix_read().
void def_regtree_macro | ( | char * | name, | |
FILE * | fp, | |||
HTK_HMM_INFO * | hmm | |||
) |
Skip a regression tree data or its macro reference.
name | [in] macro name | |
fp | [in] file pointer | |
hmm | [in] HMM definition data |
Definition at line 72 of file rdhmmdef_regtree.c.
Referenced by rdhmmdef().
boolean rdhmmlist | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmminfo | |||
) |
Read a HMMList file and build initial logical triphone list.
fp | [in] file pointer | |
hmminfo | [i/o] HMM definition data to store the logical phone list |
Definition at line 69 of file rdhmmlist.c.
Referenced by init_hmminfo().
void put_htk_trans | ( | FILE * | fp, | |
HTK_HMM_Trans * | t | |||
) |
Output transition matrix.
fp | [in] file descriptor | |
t | [in] pointer to a transion matrix |
Definition at line 39 of file put_htkdata_info.c.
Referenced by check_hmm_limit(), and put_htk_hmm().
void put_htk_var | ( | FILE * | fp, | |
HTK_HMM_Var * | v | |||
) |
Output variance vector (diagonal).
fp | [in] file descriptor | |
v | [in] pointer to a variance data |
Definition at line 63 of file put_htkdata_info.c.
Referenced by put_htk_dens().
void put_htk_dens | ( | FILE * | fp, | |
HTK_HMM_Dens * | d | |||
) |
Output a density information, mean and variance.
fp | [in] file descriptor | |
d | [in] pointer to a density data |
Definition at line 86 of file put_htkdata_info.c.
Referenced by put_htk_mpdf().
void put_htk_mpdf | ( | FILE * | fp, | |
HTK_HMM_PDF * | m | |||
) |
Output a mixture component.
fp | [in] file descriptor | |
m | [in] pointer to HMM mixture PDF |
Definition at line 111 of file put_htkdata_info.c.
Referenced by put_htk_state().
void put_htk_state | ( | FILE * | fp, | |
HTK_HMM_State * | s | |||
) |
Output a state.
fp | [in] file descriptor | |
s | [in] pointer to HMM state |
Definition at line 142 of file put_htkdata_info.c.
Referenced by put_hmm_outprob(), and put_htk_hmm().
void put_htk_hmm | ( | FILE * | fp, | |
HTK_HMM_Data * | h | |||
) |
Output HMM model, number of states and information for each state.
fp | [in] file descriptor | |
h | [in] pointer to HMM model |
Definition at line 173 of file put_htkdata_info.c.
void put_logical_hmm | ( | FILE * | fp, | |
HMM_Logical * | logical | |||
) |
Output logical HMM data and its mapping status.
fp | [in] file descriptor | |
logical | [in] pointer to a logical HMM |
Definition at line 194 of file put_htkdata_info.c.
Referenced by print_hmminfo().
void print_hmmdef_info | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmminfo | |||
) |
Output total statistic informations of the HMM definition data.
fp | [in] file descriptor | |
hmminfo | [in] HMM definition data. |
Definition at line 348 of file put_htkdata_info.c.
Referenced by print_engine_info().
HTK_HMM_INFO* hmminfo_new | ( | ) |
Allocate memory for a new HMM definition data.
Definition at line 34 of file init_phmm.c.
Referenced by initialize_GMM(), initialize_GSHMM(), and initialize_HMM().
boolean hmminfo_free | ( | HTK_HMM_INFO * | hmm | ) |
Free memory of an HMM.
hmm | [i/o] HMM definition data |
Definition at line 97 of file init_phmm.c.
Referenced by initialize_GMM(), initialize_GSHMM(), initialize_HMM(), j_process_am_free(), and j_recog_free().
boolean init_hmminfo | ( | HTK_HMM_INFO * | hmminfo, | |
char * | hmmfilename, | |||
char * | namemapfile, | |||
Value * | para | |||
) |
Load HTK HMM definition file and HMMList file, and setup phone HMM information.
First try ascii format, then try binary format.
hmminfo | [out] pointer to store all the HMM definition data. | |
hmmfilename | [in] file name of HTK HMM definition file, NULL if not. | |
namemapfile | [in] file name of HMMList mapping file. | |
para | [out] store acoustic analysis condition parameters if exist in hmmfilename. |
Definition at line 123 of file init_phmm.c.
Referenced by initialize_GMM(), initialize_GSHMM(), and initialize_HMM().
HTK_HMM_Data* htk_hmmdata_lookup_physical | ( | HTK_HMM_INFO * | hmminfo, | |
char * | keyname | |||
) |
Look up physical (defined in HTK HMM definition file) HMM by its name.
hmminfo | [in] HMM definition data | |
keyname | [in] key string of HMM name |
Definition at line 63 of file hmm_lookup.c.
Referenced by rdhmmlist().
HMM_Logical* htk_hmmdata_lookup_logical | ( | HTK_HMM_INFO * | hmminfo, | |
char * | keyname | |||
) |
Look up logical HMM by its name.
hmminfo | [in] HMM definition data | |
keyname | [in] key string of HMM name |
Definition at line 83 of file hmm_lookup.c.
Referenced by get_left_context_HMM(), get_right_context_HMM(), htk_hmm_set_pause_model(), print_hmminfo(), triphone_callback_normal(), triphone_callback_right(), voca_load_htkdict_line(), voca_load_wordlist_line(), and voca_mono2tri().
void hmm_add_physical_to_logical | ( | HTK_HMM_INFO * | hmminfo | ) |
Add all physical HMM to logical HMM.
This function should be called only if HMMList is not specified. Julius assumes all the triphones should be explicitly mapped using HMMList file.
hmminfo | [in] HMM definition data. |
Definition at line 120 of file hmm_lookup.c.
Referenced by init_hmminfo().
void hmm_add_pseudo_phones | ( | HTK_HMM_INFO * | hmminfo | ) |
Update logical HMM list by adding all the possible pseudo monophone and biphone to the list.
hmminfo | [in] HMM definition data. |
Definition at line 211 of file hmm_lookup.c.
Referenced by initialize_HMM().
void make_hmm_basephone_list | ( | HTK_HMM_INFO * | hmminfo | ) |
Build a list of base phones by gathering center phones of the defined HMM.
hmminfo | [i/o] HMM definition data |
Definition at line 48 of file chkhmmlist.c.
Referenced by init_hmminfo().
boolean htk_hmm_has_several_arc_on_edge | ( | HTK_HMM_INFO * | hmminfo | ) |
Return TRUE if it has more than one arc from initial state, or to the final state.
In such case, Julius should be run in multi-path version.
hmminfo | [in] HMM definition |
Definition at line 63 of file check_hmm_restriction.c.
Referenced by rdhmmdef(), and read_binhmm().
boolean check_hmm_limit | ( | HTK_HMM_Data * | dt | ) |
Check if the transition matrix conforms the ristrictions of Julius.
dt | [in] HTK HMM model to check. |
Definition at line 174 of file check_hmm_restriction.c.
Referenced by check_all_hmm_limit().
boolean check_all_hmm_limit | ( | HTK_HMM_INFO * | hmminfo | ) |
Check all the HMM definitions in a HTK HMM definition data.
hmminfo | [in] HTK HMM data to check. |
Definition at line 198 of file check_hmm_restriction.c.
Referenced by rdhmmdef().
boolean check_hmm_options | ( | HTK_HMM_INFO * | hmm | ) |
Check if the required parameter type in this HMM can be handled by Julius.
hmm | [in] HMM definition data |
Definition at line 38 of file check_hmmtype.c.
Referenced by rdhmmdef().
boolean is_skippable_model | ( | HTK_HMM_Data * | d | ) |
Check if the model has direct transition from initial state to final state, skipping all the output state.
d | [in] logical HMM |
Definition at line 232 of file check_hmm_restriction.c.
boolean guess_if_cd_hmm | ( | HTK_HMM_INFO * | hmminfo | ) |
Guess whether the given HMM definition contains context-dependent modeling, just by the naming rule.
hmminfo | [in] target HMM definition |
Definition at line 42 of file guess_cdHMM.c.
Referenced by init_hmminfo().
HMM_Logical* get_right_context_HMM | ( | HMM_Logical * | base, | |
char * | rc_name, | |||
HTK_HMM_INFO * | hmminfo | |||
) |
Search for right context HMM in logical HMM.
The name of a new right context HMM, given base phone HMM and a right context phone string, will be generated, and search it in the list of logical HMM. If found, return the pointer to the logical HMM.
base | [in] base phone HMM | |
rc_name | [in] right context phone name (allow context-dependent name) | |
hmminfo | [in] HTK HMM definition data |
Definition at line 107 of file cdhmm.c.
Referenced by lcdset_register_with_category(), next_word(), scan_word(), and wordgraph_assign().
HMM_Logical* get_left_context_HMM | ( | HMM_Logical * | base, | |
char * | lc_name, | |||
HTK_HMM_INFO * | hmminfo | |||
) |
Search for left context HMM in logical HMM.
The name of a new left context HMM, given base phone HMM and a left context phone string, will be generated, and search it in the list of logical HMM. If found, return the pointer to the logical HMM.
base | [in] base phone HMM | |
lc_name | [in] left context phone name (allow context-dependent name) | |
hmminfo | [in] HTK HMM definition data |
Definition at line 129 of file cdhmm.c.
Referenced by lcdset_register_with_category_all(), outprob_style(), scan_word(), and wordgraph_assign().
void add_right_context | ( | char | name[], | |
char * | rc | |||
) |
Generate context-dependent phone name from base phone name and its right context phone name.
The center phone name of the right context name will be appended to the base phone name. If the phone name already has right context, it will be renamed to the new one.
name | [i/o] string of phone name to be the base name (will be modified) | |
rc | [in] right context phone name |
Definition at line 46 of file cdhmm.c.
Referenced by error_missing_right_triphone(), get_right_context_HMM(), triphone_callback_normal(), and triphone_callback_right().
void add_left_context | ( | char | name[], | |
char * | lc | |||
) |
Generate context-dependent phone name from base phone name and its left context phone name.
The center phone name of the left context name will be appended to the base phone name. If the phone name already has left context, it will be renamed to the new one.
name | [i/o] string of phone name to be the base name (will be modified) | |
lc | [in] left context phone name |
Definition at line 73 of file cdhmm.c.
Referenced by error_missing_left_triphone(), get_left_context_HMM(), outprob_style(), triphone_callback_left(), and triphone_callback_normal().
char* center_name | ( | char * | hmmname, | |
char * | buf | |||
) |
Extract the center phone name and copy to the specified buffer.
hmmname | [in] string from which the center phone name will be extracted | |
buf | [out] the extracted phone name will be written here |
Definition at line 145 of file cdhmm.c.
Referenced by add_left_context(), add_right_context(), edit_distance(), hmm_add_pseudo_phones(), make_cdset(), make_hmm_basephone_list(), mark_word_edge(), msock_word_out1(), msock_word_out2(), outfile_sentence(), put_hypo_phoneme(), result_pass1(), and voca_load_wordlist_line().
char* leftcenter_name | ( | char * | hmmname, | |
char * | buf | |||
) |
Return "left - center" phone name, modifying buf.
hmmname | [in] context-dependent phone name string | |
buf | [out] resulting phone name |
Definition at line 176 of file cdhmm.c.
Referenced by hmm_add_pseudo_phones(), lcdset_lookup_by_hmmname(), lcdset_lookup_with_category(), lcdset_register_with_category(), make_cdset(), and voca_load_wordlist_line().
char* rightcenter_name | ( | char * | hmmname, | |
char * | buf | |||
) |
Return "center + right" phone name, modifying buf.
hmmname | [in] context-dependent phone name string | |
buf | [out] resulting phone name |
Definition at line 198 of file cdhmm.c.
Referenced by hmm_add_pseudo_phones(), make_cdset(), rcdset_lookup_by_hmmname(), and voca_load_wordlist_line().
boolean regist_cdset | ( | APATNODE ** | root, | |
HTK_HMM_Data * | d, | |||
char * | cdname, | |||
BMALLOC_BASE ** | mroot | |||
) |
Register a physical HMM as a member of a pseudo phone set.
root | [i/o] root node of HMM search index node. | |
d | [in] a physical defined HMM to be added. | |
cdname | [in] name of the pseudo phone set. |
Definition at line 207 of file cdset.c.
Referenced by lcdset_register_with_category(), and make_cdset().
boolean make_cdset | ( | HTK_HMM_INFO * | hmminfo | ) |
Construct the whole pseudo HMM information, and also add them to the logical Triphone tree.
hmminfo | [i/o] HMM definition data. The generated data will also be stored within this. |
Definition at line 320 of file cdset.c.
Referenced by initialize_HMM().
void put_all_cdinfo | ( | HTK_HMM_INFO * | hmminfo | ) |
void free_cdset | ( | APATNODE ** | root, | |
BMALLOC_BASE ** | mroot | |||
) |
Remove all the registered category-indexed pseudo state sets.
This function will be called when a grammar is changed to re-build the state sets.
root | [i/o] pointer to hold the root index pointer |
Definition at line 379 of file cdset.c.
Referenced by hmminfo_free(), and lcdset_remove_with_category_all().
CD_Set* cdset_lookup | ( | HTK_HMM_INFO * | hmminfo, | |
char * | cdstr | |||
) |
Look up for a pseudo phone with the name, and return the content.
hmminfo | [in] HMM information to search for. | |
cdstr | [in] string of pseudo phone name to search. |
Definition at line 113 of file cdset.c.
Referenced by hmm_add_pseudo_phones_sub(), lcdset_lookup_by_hmmname(), and rcdset_lookup_by_hmmname().
CD_Set* lcdset_lookup_by_hmmname | ( | HTK_HMM_INFO * | hmminfo, | |
char * | hmmname | |||
) |
Look up for a pseudo phone by the "left - center" name of the given phone name.
hmminfo | [in] HMM information to search for. | |
hmmname | [in] string of the phone name. |
Definition at line 133 of file cdset.c.
Referenced by outprob_style(), and wchmm_add_word().
CD_Set* rcdset_lookup_by_hmmname | ( | HTK_HMM_INFO * | hmminfo, | |
char * | hmmname | |||
) |
int hmm_logical_state_num | ( | HMM_Logical * | lg | ) |
Generic function to get the number of states in a logical HMM.
lg | [in] logical HMM |
Definition at line 255 of file hmm_lookup.c.
Referenced by adjust_sc_index(), do_align(), get_outtrans_list(), max_out_arc(), new_make_word_hmm_with_lm(), scan_word(), totalstatelen(), voca_set_stats(), wchmm_add_word(), wchmm_duplicate_leafnode(), wchmm_duplicate_state(), and wchmm_link_subword().
HTK_HMM_Trans* hmm_logical_trans | ( | HMM_Logical * | lg | ) |
Generic function to get transition matrix of a logical HMM.
lg | [in] logical HMM |
Definition at line 271 of file hmm_lookup.c.
Referenced by adjust_sc_index(), get_outtrans_list(), max_out_arc(), wchmm_calc_wordend_arc(), wchmm_duplicate_leafnode(), and wchmm_link_subword().
boolean check_param_coherence | ( | HTK_HMM_INFO * | hmm, | |
HTK_Param * | pinfo | |||
) |
Check if an input parameter type exactly matches that of HMM.
hmm | [in] HMM definition data | |
pinfo | [in] input parameter |
Definition at line 71 of file check_hmmtype.c.
Referenced by param_check_and_adjust(), and RealTimePipeLinePrepare().
boolean check_param_basetype | ( | HTK_HMM_INFO * | hmm, | |
HTK_Param * | pinfo | |||
) |
Check if the base type of input parameter matches that of HMM.
hmm | [in] HMM definition data | |
pinfo | [in] input parameter |
Definition at line 109 of file check_hmmtype.c.
Referenced by param_check_and_adjust().
int param_check_and_adjust | ( | HTK_HMM_INFO * | hmminfo, | |
HTK_Param * | param, | |||
boolean | vflag | |||
) |
Top function to adjust parameter.
It compares the types for the given parameter param and HMM definition hmminfo. If type is not the same, adjustment will be tried.
hmminfo | [in] HTK HMM definition | |
param | [i/o] input parameter, will be freed if adjustment was performed in this function | |
vflag | [in] if TRUE, output verbose messages |
Definition at line 371 of file paramselect.c.
Referenced by j_recognize_stream_core().
boolean write_binhmm | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm, | |||
Value * | para | |||
) |
Top function to write HMM definition data to a binary file.
fp | [in] file pointer | |
hmm | [in] HMM definition structure to be written | |
para | [in] acoustic analysis parameter, or NULL if not available |
Definition at line 992 of file write_binhmm.c.
boolean read_binhmm | ( | FILE * | fp, | |
HTK_HMM_INFO * | hmm, | |||
boolean | gzfile_p, | |||
Value * | para | |||
) |
Top function to read a binary HMM file from fp.
fp | [in] file pointer | |
hmm | [out] HMM definition structure to hold the read models. | |
gzfile_p | [in] TRUE if the file pointer points to a gzip file | |
para | [out] store acoustic parameters if embedded in binhmm (V2) |
Definition at line 745 of file read_binhmm.c.
Referenced by init_hmminfo().