PocketSphinx  5prealpha
dict2pid.h File Reference

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_tdict2pid_build (bin_mdef_t *mdef, dict_t *dict)
 Build the dict2pid structure for the given model/dictionary. More...
 
dict2pid_tdict2pid_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_tdict2pid_get_rcmap (dict2pid_t *d2p, s3wid_t w)
 Get RC map. More...
 

Detailed Description

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.

Function Documentation

dict2pid_t* dict2pid_build ( bin_mdef_t mdef,
dict_t dict 
)

Build the dict2pid structure for the given model/dictionary.

Parameters
mdefA model definition
dictAn 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.

Parameters
fpIn: a file pointer
d2pIn: 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)
s3cipid_t* dict2pid_get_rcmap ( dict2pid_t d2p,
s3wid_t  w 
)

Get RC map.

Parameters
d2pIn: a dict2pid
wIn: 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.

Parameters
d2pIn: 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.

Parameters
d2pIn: a dict2pid
wIn: 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.