Model definition.
More...
#include <stdio.h>
#include <hash_table.h>
#include "s3types.h"
Go to the source code of this file.
|
S3DECODER_EXPORT mdef_t * | mdef_init (const char *mdeffile, int32 breport) |
|
s3cipid_t | mdef_ciphone_id (mdef_t *m, const char *ciphone) |
|
S3DECODER_EXPORT const char * | mdef_ciphone_str (mdef_t *m, s3cipid_t ci) |
|
int32 | mdef_is_ciphone (mdef_t *m, s3pid_t p) |
|
int32 | mdef_is_cisenone (mdef_t *m, s3senid_t s) |
|
S3DECODER_EXPORT s3pid_t | mdef_phone_id (mdef_t *m, s3cipid_t b, s3cipid_t l, s3cipid_t r, word_posn_t pos) |
|
S3DECODER_EXPORT s3pid_t | mdef_phone_id_nearest (mdef_t *m, s3cipid_t b, s3cipid_t l, s3cipid_t r, word_posn_t pos) |
|
S3DECODER_EXPORT int32 | mdef_phone_str (mdef_t *m, s3pid_t pid, char *buf) |
|
S3DECODER_EXPORT int32 | mdef_phone_components (mdef_t *m, s3pid_t p, s3cipid_t *b, s3cipid_t *l, s3cipid_t *r, word_posn_t *pos) |
|
int32 | mdef_hmm_cmp (mdef_t *m, s3pid_t p1, s3pid_t p2) |
|
void | mdef_sseq2sen_active (mdef_t *mdef, uint8 *sseq, uint8 *sen) |
|
void | mdef_dump (FILE *fp, mdef_t *m) |
|
void | mdef_report (mdef_t *m) |
|
void | mdef_free_recursive_lc (ph_lc_t *lc) |
|
void | mdef_free_recursive_rc (ph_rc_t *rc) |
|
S3DECODER_EXPORT void | mdef_free (mdef_t *mdef) |
|
#define mdef_cd2cisen |
( |
|
m | ) |
((m)->cd2cisen) |
#define mdef_is_fillerphone |
( |
|
m, |
|
|
|
p |
|
) |
| ((m)->ciphone[p].filler) |
Access macros; not meant for arbitrary use
#define mdef_n_ciphone |
( |
|
m | ) |
((m)->n_ciphone) |
#define mdef_n_emit_state |
( |
|
m | ) |
((m)->n_emit_state) |
#define mdef_n_phone |
( |
|
m | ) |
((m)->n_phone) |
#define mdef_n_sen |
( |
|
m | ) |
((m)->n_sen) |
#define mdef_n_sseq |
( |
|
m | ) |
((m)->n_sseq) |
#define mdef_n_tmat |
( |
|
m | ) |
((m)->n_tmat) |
#define mdef_pid2ci |
( |
|
m, |
|
|
|
p |
|
) |
| ((m)->phone[p].ci) |
#define mdef_pid2ssid |
( |
|
m, |
|
|
|
p |
|
) |
| ((m)->phone[p].ssid) |
#define mdef_pid2tmatid |
( |
|
m, |
|
|
|
p |
|
) |
| ((m)->phone[p].tmat) |
#define mdef_sen2cimap |
( |
|
m | ) |
((m)->sen2cimap) |
#define mdef_silphone |
( |
|
m | ) |
((m)->sil) |
#define mdef_sseq2sen |
( |
|
m, |
|
|
|
ss, |
|
|
|
pos |
|
) |
| ((m)->sseq[ss][pos]) |
total # of word positions (excluding undefined)
#define S3_SILENCE_CIPHONE "SIL" |
Hard-coded silence CI phone name
#define WPOS_NAME "ibesu" |
Printable code for each word position above
Union of different type of word position.
Enumerator |
---|
WORD_POSN_INTERNAL |
Internal phone of word
|
WORD_POSN_BEGIN |
Beginning phone of word
|
WORD_POSN_END |
Ending phone of word
|
WORD_POSN_SINGLE |
Single phone word (i.e. begin & end)
|
WORD_POSN_UNDEFINED |
Undefined value, used for initial conditions, etc
|
Get the ciphone id given a string name
- Returns
- ciphone id for the given ciphone string name
- Parameters
-
m | In: Model structure being queried |
ciphone | In: ciphone for which id wanted |
Get the phone string given the ci phone id.
- Returns
- : READ-ONLY ciphone string name for the given ciphone id
- Parameters
-
m | In: Model structure being queried |
ci | In: ciphone id for which name wanted |
Referenced by dict2pid_dump().
void mdef_dump |
( |
FILE * |
fp, |
|
|
mdef_t * |
m |
|
) |
| |
For debugging: dump the mdef_t structure out.
- Parameters
-
fp | In: a file pointer |
m | In: a model definition structure |
Free an mdef_t
- Parameters
-
mdef | In : The model definition |
void mdef_free_recursive_lc |
( |
ph_lc_t * |
lc | ) |
|
RAH, For freeing memory
- Parameters
-
lc | In: A list of left context |
void mdef_free_recursive_rc |
( |
ph_rc_t * |
rc | ) |
|
- Parameters
-
rc | In: A list of right context |
Compare the underlying HMMs for two given phones (i.e., compare the two transition matrix IDs and the individual state(senone) IDs).
- Returns
- 0 iff the HMMs are identical, -1 otherwise.
- Parameters
-
m | In: Model being queried |
p1 | In: One of the two triphones being compared |
p2 | In: One of the two triphones being compared |
Initialize the phone structure from the given model definition file. It should be treated as a READ-ONLY structure.
- Returns
- pointer to the phone structure created.
- Parameters
-
mdeffile | In: Model definition file |
breport | In: whether to report the progress or not |
Decide whether the phone is ci phone.
- Returns
- 1 if given triphone argument is a ciphone, 0 if not, -1 if error
- Parameters
-
m | In: Model structure being queried |
p | In: triphone id being queried |
Obtain phone components: inverse of mdef_phone_id().
- Returns
- 0 if successful, -1 otherwise.
- Parameters
-
m | In: Model structure being queried |
p | In: triphone id being queried |
b | Out: base ciphone id |
l | Out: left context ciphone id |
r | Out: right context ciphone id |
pos | Out: Word position |
Decide the phone id given the left, right and base phones.
- Returns
- : phone id for the given constituents if found, else BAD_S3PID
- Parameters
-
m | In: Model structure being queried |
b | In: base ciphone id |
l | In: left context ciphone id |
r | In: right context ciphone id |
pos | In: Word position |
Like phone_id, but backs off to other word positions if exact triphone not found. Also, non-SILENCE_PHONE filler phones back off to SILENCE_PHONE. Ultimately, backs off to base phone id. Thus, it should never return BAD_S3PID.
- Parameters
-
m | In: Model structure being queried |
b | In: base ciphone id |
l | In: left context ciphone id |
r | In: right context ciphone id |
pos | In: Word position |
Referenced by dict2pid_build().
Create a phone string for the given phone (base or triphone) id in the given buf.
- Returns
- 0 if successful, -1 if error.
- Parameters
-
m | In: Model structure being queried |
pid | In: phone id being queried |
buf | Out: On return, buf has the string |
void mdef_report |
( |
mdef_t * |
m | ) |
|
Report the model definition's parameters
- Parameters
-
m | In: model definition structure |
void mdef_sseq2sen_active |
( |
mdef_t * |
mdef, |
|
|
uint8 * |
sseq, |
|
|
uint8 * |
sen |
|
) |
| |
From the given array of active senone-sequence flags, mark the corresponding senones that are active. Caller responsible for allocating sen[], and for clearing it, if necessary.
- Parameters
-
mdef | In: The model definition |
sseq | In: sseq[ss] is != 0 iff senone-sequence ID ss is active |
sen | In/Out: Set sen[s] to non-0 if so indicated by any active senone sequence |