PocketSphinx
5prealpha
|
Building triphones for a dictionary. More...
#include <stdio.h>
#include <sphinxbase/logmath.h>
#include <sphinxbase/bitvec.h>
#include "s3types.h"
#include "bin_mdef.h"
#include "dict.h"
Go to the source code of this file.
Data Structures | |
struct | xwdssid_t |
cross word triphone model structure More... | |
struct | dict2pid_t |
Building composite triphone (as well as word internal triphones) with the dictionary. More... | |
Macros | |
#define | dict2pid_rssid(d, ci, lc) (&(d)->rssid[ci][lc]) |
Access macros; not designed for arbitrary use. | |
#define | dict2pid_ldiph_lc(d, b, r, l) ((d)->ldiph_lc[b][r][l]) |
#define | dict2pid_lrdiph_rc(d, b, l, r) ((d)->lrdiph_rc[b][l][r]) |
Functions | |
dict2pid_t * | dict2pid_build (bin_mdef_t *mdef, dict_t *dict) |
Build the dict2pid structure for the given model/dictionary. More... | |
dict2pid_t * | dict2pid_retain (dict2pid_t *d2p) |
Retain a pointer to dict2pid. | |
int | dict2pid_free (dict2pid_t *d2p) |
Free the memory dict2pid structure. More... | |
s3ssid_t | dict2pid_internal (dict2pid_t *d2p, int32 wid, int pos) |
Return the senone sequence ID for the given word position. | |
int | dict2pid_add_word (dict2pid_t *d2p, int32 wid) |
Add a word to the dict2pid structure (after adding it to dict). | |
void | dict2pid_dump (FILE *fp, dict2pid_t *d2p) |
For debugging. More... | |
void | dict2pid_report (dict2pid_t *d2p) |
Report a dict2pid data structure. More... | |
int32 | get_rc_nssid (dict2pid_t *d2p, s3wid_t w) |
Get number of rc. More... | |
s3cipid_t * | dict2pid_get_rcmap (dict2pid_t *d2p, s3wid_t w) |
Get RC map. More... | |
Building triphones for a dictionary.
This is one of the more complicated parts of a cross-word triphone model decoder. The first and last phones of each word get their left and right contexts, respectively, from other words. For single-phone words, both its contexts are from other words, simultaneously. As these words are not known beforehand, life gets complicated.
Definition in file dict2pid.h.
dict2pid_t* dict2pid_build | ( | bin_mdef_t * | mdef, |
dict_t * | dict | ||
) |
Build the dict2pid structure for the given model/dictionary.
mdef | A model definition |
dict | An initialized dictionary |
Definition at line 388 of file dict2pid.c.
References BAD_S3SSID, bin_mdef_ciphone_str(), bin_mdef_retain(), dict2pid_t::dict, dict2pid_report(), dict_pron, dict_retain(), dict_size, dict2pid_t::ldiph_lc, dict2pid_t::lrdiph_rc, dict2pid_t::mdef, bin_mdef_s::n_ciphone, WORD_POSN_BEGIN, and WORD_POSN_END.
Referenced by ps_load_dict(), and ps_reinit().
void dict2pid_dump | ( | FILE * | fp, |
dict2pid_t * | d2p | ||
) |
For debugging.
fp | In: a file pointer |
d2p | In: a dict2pid_t structure |
Definition at line 538 of file dict2pid.c.
References bin_mdef_ciphone_str(), dict2pid_t::dict, dict2pid_internal(), dict_size, dict2pid_t::ldiph_lc, dict2pid_t::mdef, bin_mdef_s::n_sseq, and bin_mdef_s::sseq.
int dict2pid_free | ( | dict2pid_t * | d2p | ) |
Free the memory dict2pid structure.
d2p | In: the d2p |
Definition at line 507 of file dict2pid.c.
References bin_mdef_free(), dict2pid_t::dict, dict_free(), dict2pid_t::ldiph_lc, dict2pid_t::lrdiph_rc, dict2pid_t::lrssid, dict2pid_t::mdef, and dict2pid_t::rssid.
Referenced by ps_alignment_free(), ps_free(), ps_load_dict(), ps_reinit(), ps_search_base_free(), and ps_search_base_reinit().
s3cipid_t* dict2pid_get_rcmap | ( | dict2pid_t * | d2p, |
s3wid_t | w | ||
) |
Get RC map.
d2p | In: a dict2pid |
w | In: a wid |
Definition at line 229 of file dict2pid.c.
References xwdssid_t::cimap, dictword_t::ciphone, dict2pid_t::dict, dict2pid_t::lrssid, dictword_t::pronlen, dict2pid_t::rssid, and dict_t::word.
void dict2pid_report | ( | dict2pid_t * | d2p | ) |
Report a dict2pid data structure.
d2p | In: a dict2pid_t structure |
Definition at line 533 of file dict2pid.c.
Referenced by dict2pid_build().
int32 get_rc_nssid | ( | dict2pid_t * | d2p, |
s3wid_t | w | ||
) |
Get number of rc.
Get number of rc.
I doubt whether it is correct because the compressed map has not been checked.
d2p | In: a dict2pid |
w | In: a wid |
Definition at line 204 of file dict2pid.c.
References dictword_t::ciphone, dict2pid_t::dict, dict2pid_t::lrssid, xwdssid_t::n_ssid, dictword_t::pronlen, dict2pid_t::rssid, and dict_t::word.