|
Classes |
| struct | hmm_context_s |
| struct | hmm_state_t |
| | A single state in the HMM. More...
|
| struct | hmm_s |
Defines |
| #define | MAX_HMM_NSTATE 5 |
| #define | hmm_context(h) ((hmm_t *)(h))->ctx |
| #define | hmm_is_mpx(h) ((hmm_t *)(h))->mpx |
| #define | hmm_state(h, st) ((hmm_t *)(h))->state[st] |
| #define | hmm_in_score(h) hmm_state(h,0).score |
| #define | hmm_score(h, st) hmm_state(h,st).score |
| #define | hmm_out_score(h) ((hmm_t *)(h))->out.score |
| #define | hmm_in_history(h) hmm_state(h,0).history.id |
| #define | hmm_history(h, st) hmm_state(h,st).history.id |
| #define | hmm_out_history(h) ((hmm_t *)(h))->out.history.id |
| #define | hmm_in_histobj(h) hmm_state(h,0).history.ptr |
| #define | hmm_histobj(h, st) hmm_state(h,st).history.ptr |
| #define | hmm_out_histobj(h) ((hmm_t *)(h))->out.history.ptr |
| #define | hmm_bestscore(h) ((hmm_t *)(h))->bestscore |
| #define | hmm_frame(h) ((hmm_t *)(h))->frame |
| #define | hmm_mpx_ssid(h, st) ((hmm_t *)(h))->s.mpx_ssid[st] |
| #define | hmm_nonmpx_ssid(h) ((hmm_t *)(h))->s.ssid |
| #define | hmm_ssid(h, st) |
| #define | hmm_senid(h, st) |
| #define | hmm_senscr(h, st) |
| #define | hmm_tmatid(h) ((hmm_t *)(h))->tmatid |
| #define | hmm_tprob(h, i, j) ((hmm_t *)(h))->ctx->tp[hmm_tmatid(h)][i][j] |
| #define | hmm_n_emit_state(h) (((hmm_t *)(h))->n_emit_state) |
| #define | hmm_n_state(h) (((hmm_t *)(h))->n_emit_state + 1) |
| #define | hmm_context_set_senscore(ctx, senscr) ((ctx)->senscore = (senscr)) |
Typedefs |
| typedef hmm_context_s | hmm_context_t |
| typedef hmm_s | hmm_t |
Functions |
| hmm_context_t * | hmm_context_init (int32 n_emit_state, int32 ***tp, int32 *senscore, s3senid_t **sseq) |
| void | hmm_context_free (hmm_context_t *ctx) |
| void | hmm_init (hmm_context_t *ctx, hmm_t *hmm, int mpx, int32 ssid, s3tmatid_t tmatid) |
| void | hmm_deinit (hmm_t *hmm) |
| void | hmm_clear (hmm_t *h) |
| void | hmm_clear_scores (hmm_t *h) |
| void | hmm_normalize (hmm_t *h, int32 bestscr) |
| void | hmm_enter (hmm_t *h, int32 score, int32 histid, int32 frame) |
| void | hmm_enter_obj (hmm_t *h, int32 score, void *histobj, int32 frame) |
| int32 | hmm_vit_eval (hmm_t *hmm) |
| int32 | hmm_dump_vit_eval (hmm_t *hmm, FILE *fp) |
| void | hmm_dump (hmm_t *h, FILE *fp) |
For efficiency, this version is hardwired for two possible HMM topologies, but will fall back to others:
5-state left-to-right HMMs: (0 is the *emitting* entry state and E is a non-emitting exit state; the x's indicate allowed transitions between source and destination states):
0 1 2 3 4 E (destination-states) 0 x x x 1 x x x 2 x x x 3 x x x 4 x x (source-states) 5-state topologies that contain a subset of the above transitions should work as well.
0 1 2 E (destination-states) 0 x x x 1 x x x 2 x x (source-states) 3-state topologies that contain a subset of the above transitions should work as well.