#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <feat.h>
#include <strfuncs.h>
#include <s3types.h>
#include "mdef.h"
#include "tmat.h"
#include "dict.h"
#include "logs3.h"
#include "s3_align.h"
Classes | |
| struct | pnode_s |
| struct | plink_s |
| struct | history_s |
| struct | snode_s |
| struct | slink_s |
Defines | |
| #define | ACTIVE_LIST_SIZE_INCR 16380 |
Typedefs | |
| typedef pnode_s | pnode_t |
| typedef plink_s | plink_t |
| typedef history_s | history_t |
| typedef snode_s | snode_t |
| typedef slink_s | slink_t |
Functions | |
| int32 | align_build_sent_hmm (char *wordstr, int insert_sil) |
| int32 | align_destroy_sent_hmm (void) |
| void | align_sen_active (uint8 *senlist, int32 n_sen) |
| int32 | align_start_utt (char *uttid) |
| int32 | align_frame (int32 *senscr) |
| int32 | align_end_utt (align_stseg_t **stseg_out, align_phseg_t **phseg_out, align_wdseg_t **wdseg_out) |
| int32 | align_init (mdef_t *_mdef, tmat_t *_tmat, dict_t *_dict, cmd_ln_t *_config, logmath_t *_logmath) |
| void | align_free (void) |
|
|
|
|
|
Viterbi search history for each state at each time. |
|
|
A may have links (transitions) to several successor or predecessor nodes. They are captured by a list of the following plink_t type. |
|
|
Phone-level sentence HMM structures: pnode_t: nodes of phones forming sentence HMM. plink_t: a link between two pnode_t nodes. A phone node may have multiple successors and/or predecessors because of multiple alternative pronunciations for a word, as well as the presence of OPTIONAL filler words. Assumptions:
|
|
|
|
|
|
State DAG structures similar to phone DAG structures. |
|
||||||||||||
|
Build a sentence HMM for the given transcription (wordstr). A two-level DAG is built: phone-level and state-level.
|
|
|
|
|
||||||||||||||||
|
All frames consumed. Trace back best Viterbi state sequence and dump it out.
|
|
|
One frame of Viterbi time alignment.
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
||||||||||||
|
Flag the active senones.
|
|
|
Start Viterbi alignment using the sentence HMM previously built. Assumes that each utterance will only be aligned once; state member variables initialized during sentence HMM building. |
1.3.9.1