PocketSphinx 5prealpha
ps_alignment.c File Reference

Multi-level alignment structure. More...

#include <sphinxbase/ckd_alloc.h>
#include "ps_alignment.h"

Go to the source code of this file.

Macros

#define VECTOR_GROW   10
 

Functions

ps_alignment_tps_alignment_init (dict2pid_t *d2p)
 Create a new, empty alignment.
 
int ps_alignment_free (ps_alignment_t *al)
 Release an alignment.
 
int ps_alignment_add_word (ps_alignment_t *al, int32 wid, int duration)
 Append a word.
 
int ps_alignment_populate (ps_alignment_t *al)
 Populate lower layers using available word information.
 
int ps_alignment_populate_ci (ps_alignment_t *al)
 Populate lower layers using context-independent phones.
 
int ps_alignment_propagate (ps_alignment_t *al)
 Propagate timing information up from state sequence.
 
int ps_alignment_n_words (ps_alignment_t *al)
 Number of words.
 
int ps_alignment_n_phones (ps_alignment_t *al)
 Number of phones.
 
int ps_alignment_n_states (ps_alignment_t *al)
 Number of states.
 
ps_alignment_iter_tps_alignment_words (ps_alignment_t *al)
 Iterate over the alignment starting at the first word.
 
ps_alignment_iter_tps_alignment_phones (ps_alignment_t *al)
 Iterate over the alignment starting at the first phone.
 
ps_alignment_iter_tps_alignment_states (ps_alignment_t *al)
 Iterate over the alignment starting at the first state.
 
ps_alignment_entry_tps_alignment_iter_get (ps_alignment_iter_t *itor)
 Get the alignment entry pointed to by an iterator.
 
int ps_alignment_iter_free (ps_alignment_iter_t *itor)
 Release an iterator before completing all iterations.
 
ps_alignment_iter_tps_alignment_iter_goto (ps_alignment_iter_t *itor, int pos)
 Move alignment iterator to given index.
 
ps_alignment_iter_tps_alignment_iter_next (ps_alignment_iter_t *itor)
 Move an alignment iterator forward.
 
ps_alignment_iter_tps_alignment_iter_prev (ps_alignment_iter_t *itor)
 Move an alignment iterator back.
 
ps_alignment_iter_tps_alignment_iter_up (ps_alignment_iter_t *itor)
 Get a new iterator starting at the parent of the current node.
 
ps_alignment_iter_tps_alignment_iter_down (ps_alignment_iter_t *itor)
 Get a new iterator starting at the first child of the current node.
 

Detailed Description

Multi-level alignment structure.

Definition in file ps_alignment.c.

Macro Definition Documentation

◆ VECTOR_GROW

#define VECTOR_GROW   10

Definition at line 71 of file ps_alignment.c.

Function Documentation

◆ ps_alignment_add_word()

int ps_alignment_add_word ( ps_alignment_t al,
int32  wid,
int  duration 
)

Append a word.

Definition at line 108 of file ps_alignment.c.

◆ ps_alignment_free()

int ps_alignment_free ( ps_alignment_t al)

Release an alignment.

Definition at line 59 of file ps_alignment.c.

References dict2pid_free().

◆ ps_alignment_init()

ps_alignment_t * ps_alignment_init ( dict2pid_t d2p)

Create a new, empty alignment.

Definition at line 51 of file ps_alignment.c.

References dict2pid_retain().

◆ ps_alignment_iter_down()

ps_alignment_iter_t * ps_alignment_iter_down ( ps_alignment_iter_t itor)

Get a new iterator starting at the first child of the current node.

Definition at line 481 of file ps_alignment.c.

◆ ps_alignment_iter_free()

int ps_alignment_iter_free ( ps_alignment_iter_t itor)

Release an iterator before completing all iterations.

Definition at line 417 of file ps_alignment.c.

Referenced by ps_alignment_iter_goto(), ps_alignment_iter_next(), and ps_alignment_iter_prev().

◆ ps_alignment_iter_get()

ps_alignment_entry_t * ps_alignment_iter_get ( ps_alignment_iter_t itor)

Get the alignment entry pointed to by an iterator.

Definition at line 411 of file ps_alignment.c.

◆ ps_alignment_iter_goto()

ps_alignment_iter_t * ps_alignment_iter_goto ( ps_alignment_iter_t itor,
int  pos 
)

Move alignment iterator to given index.

Definition at line 424 of file ps_alignment.c.

References ps_alignment_iter_free().

◆ ps_alignment_iter_next()

ps_alignment_iter_t * ps_alignment_iter_next ( ps_alignment_iter_t itor)

Move an alignment iterator forward.

Definition at line 437 of file ps_alignment.c.

References ps_alignment_iter_free().

◆ ps_alignment_iter_prev()

ps_alignment_iter_t * ps_alignment_iter_prev ( ps_alignment_iter_t itor)

Move an alignment iterator back.

Definition at line 449 of file ps_alignment.c.

References ps_alignment_iter_free().

◆ ps_alignment_iter_up()

ps_alignment_iter_t * ps_alignment_iter_up ( ps_alignment_iter_t itor)

Get a new iterator starting at the parent of the current node.

Definition at line 461 of file ps_alignment.c.

◆ ps_alignment_n_phones()

int ps_alignment_n_phones ( ps_alignment_t al)

Number of phones.

Definition at line 357 of file ps_alignment.c.

◆ ps_alignment_n_states()

int ps_alignment_n_states ( ps_alignment_t al)

Number of states.

Definition at line 363 of file ps_alignment.c.

◆ ps_alignment_n_words()

int ps_alignment_n_words ( ps_alignment_t al)

Number of words.

Definition at line 351 of file ps_alignment.c.

◆ ps_alignment_phones()

ps_alignment_iter_t * ps_alignment_phones ( ps_alignment_t al)

Iterate over the alignment starting at the first phone.

Definition at line 383 of file ps_alignment.c.

◆ ps_alignment_populate()

int ps_alignment_populate ( ps_alignment_t al)

Populate lower layers using available word information.

Definition at line 129 of file ps_alignment.c.

References BAD_SENID, BAD_SSID, xwdssid_t::cimap, dict2pid_t::dict, dict2pid_internal(), dict2pid_rssid, dict_pron, dict2pid_t::mdef, and xwdssid_t::ssid.

◆ ps_alignment_populate_ci()

int ps_alignment_populate_ci ( ps_alignment_t al)

Populate lower layers using context-independent phones.

Definition at line 247 of file ps_alignment.c.

References BAD_SENID, BAD_SSID, dict2pid_t::dict, dict_pron, and dict2pid_t::mdef.

◆ ps_alignment_propagate()

int ps_alignment_propagate ( ps_alignment_t al)

Propagate timing information up from state sequence.

Definition at line 313 of file ps_alignment.c.

◆ ps_alignment_states()

ps_alignment_iter_t * ps_alignment_states ( ps_alignment_t al)

Iterate over the alignment starting at the first state.

Definition at line 397 of file ps_alignment.c.

◆ ps_alignment_words()

ps_alignment_iter_t * ps_alignment_words ( ps_alignment_t al)

Iterate over the alignment starting at the first word.

Definition at line 369 of file ps_alignment.c.