Implementation of dict2pid. More...
Functions | |
| void | compress_table (s3ssid_t *uncomp_tab, s3ssid_t *com_tab, s3cipid_t *ci_map, int32 n_ci) |
| int32 | get_rc_nssid (dict2pid_t *d2p, s3wid_t w, dict_t *dict) |
| s3cipid_t * | dict2pid_get_rcmap (dict2pid_t *d2p, s3wid_t w, dict_t *dict) |
| dict2pid_t * | dict2pid_build (mdef_t *mdef, dict_t *dict, int32 is_composite, logmath_t *logmath) |
| void | dict2pid_free (dict2pid_t *d2p) |
| void | dict2pid_report (dict2pid_t *d2p) |
| void | dict2pid_comsenscr (dict2pid_t *d2p, int32 *senscr, int32 *comsenscr) |
| void | dict2pid_comsseq2sen_active (dict2pid_t *d2p, mdef_t *mdef, uint8 *comssid, uint8 *sen) |
| void | dict2pid_dump (FILE *fp, dict2pid_t *d2p, mdef_t *mdef, dict_t *dict) |
Implementation of dict2pid.
A general remark, notice "comsseq" sometimes means compressed sequence. It should be understood as differnet thing as composite in the source code.
Compress this map
References BAD_S3CIPID, and BAD_S3SSID.
| dict2pid_t* dict2pid_build | ( | mdef_t * | mdef, |
| dict_t * | dict, | ||
| int32 | is_composite, | ||
| logmath_t * | logmath | ||
| ) |
Build the dict2pid structure for the given model/dictionary
This segments of code take care of the initialization of internal[0] and ldiph[b][r][l]
This part will take care of the initialization of internal[pronlen-1] and rdiph[b][l][r]. Notice that this is symmetric to the first part of the code.
| mdef | A model definition |
| dict | An initialized dictionary |
| is_composite | Whether composite triphones will be built |
| void dict2pid_comsenscr | ( | dict2pid_t * | d2p, |
| int32 * | senscr, | ||
| int32 * | comsenscr | ||
| ) |
Populate composite senone score array.
The composite senone score is the maximum of its component senones' scores, scaled down by the number of component senones.
| d2p | In: a dict2pid_t structure |
| senscr | In: Ordinary senone scores |
| comsenscr | Out: Composite senone scores |
References dict2pid_t::comstate, dict2pid_t::comwt, dict2pid_t::n_comstate, and NOT_S3SENID.
| void dict2pid_comsseq2sen_active | ( | dict2pid_t * | d2p, |
| mdef_t * | mdef, | ||
| uint8 * | comssid, | ||
| uint8 * | sen | ||
| ) |
Mark senones active based on a set of active composite senones.
| d2p | In: a dict2pid_t structure |
| mdef | In: a mdef_t structure |
| comssid | In: Active flag for each comssid |
| sen | In/Out: Active flags set for senones indicated by the active comssid |
| void dict2pid_dump | ( | FILE * | fp, |
| dict2pid_t * | d2p, | ||
| mdef_t * | mdef, | ||
| dict_t * | dict | ||
| ) |
For debugging
| fp | In: a file pointer |
| d2p | In: a dict2pid_t structure |
| mdef | In: a mdef_t structure |
| dict | In: a dictionary structure |
| void dict2pid_free | ( | dict2pid_t * | d2p | ) |
Free the memory dict2pid structure
| d2p | In: the d2p |
References dict2pid_t::comsseq, dict2pid_t::comstate, dict2pid_t::comwt, dict2pid_t::internal, dict2pid_t::ldiph_lc, dict2pid_t::lrdiph_rc, dict2pid_t::n_comsseq, dict2pid_t::rdiph_rc, dict2pid_t::rssid, and dict2pid_t::single_lc.
| s3cipid_t* dict2pid_get_rcmap | ( | dict2pid_t * | d2p, |
| s3wid_t | w, | ||
| dict_t * | dict | ||
| ) |
Get RC map
| d2p | In: a dict2pid |
| w | In: a wid |
| dict | In: a dictionary |
| void dict2pid_report | ( | dict2pid_t * | d2p | ) |
Report a dict2pid data structure
| d2p | In: a dict2pid_t structure |
References dict2pid_t::is_composite, dict2pid_t::n_comsseq, and dict2pid_t::n_comstate.
| int32 get_rc_nssid | ( | dict2pid_t * | d2p, |
| s3wid_t | w, | ||
| dict_t * | dict | ||
| ) |
ARCHAN, A duplicate of get_rc_npid in ctxt_table.h. I doubt whether it is correct because the compressed map has not been checked.
| d2p | In: a dict2pid |
| w | In: a wid |
| dict | In: a dictionary |
1.8.14