ps_alignment.h File Reference

Multi-level alignment structure. More...

`#include <sphinxbase/prim_type.h>`
`#include "dict2pid.h"`
`#include "hmm.h"`

Go to the source code of this file.

## Data Structures

struct | ps_alignment_entry_s
struct | ps_alignment_vector_s
struct | ps_alignment_s
struct | ps_alignment_iter_s

## Macros

#define | PS_ALIGNMENT_NONE ((uint16)0xffff)

## Typedefs

typedef struct ps_alignment_entry_s | ps_alignment_entry_t
typedef struct ps_alignment_vector_s | ps_alignment_vector_t
typedef struct ps_alignment_s | ps_alignment_t
typedef struct ps_alignment_iter_s | ps_alignment_iter_t

## Functions

ps_alignment_t * | ps_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_t * | ps_alignment_words (ps_alignment_t *al)
| Iterate over the alignment starting at the first word.
ps_alignment_iter_t * | ps_alignment_phones (ps_alignment_t *al)
| Iterate over the alignment starting at the first phone.
ps_alignment_iter_t * | ps_alignment_states (ps_alignment_t *al)
| Iterate over the alignment starting at the first state.
ps_alignment_entry_t * | ps_alignment_iter_get (ps_alignment_iter_t *itor)
| Get the alignment entry pointed to by an iterator.
ps_alignment_iter_t * | ps_alignment_iter_goto (ps_alignment_iter_t *itor, int pos)
| Move alignment iterator to given index.
ps_alignment_iter_t * | ps_alignment_iter_next (ps_alignment_iter_t *itor)
| Move an alignment iterator forward.
ps_alignment_iter_t * | ps_alignment_iter_prev (ps_alignment_iter_t *itor)
| Move an alignment iterator back.
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.
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.
int | ps_alignment_iter_free (ps_alignment_iter_t *itor)
| Release an iterator before completing all iterations.

## Detailed Description

Multi-level alignment structure.

Definition in file ps_alignment.h.

## Macro Definition Documentation

## PS_ALIGNMENT_NONE

#define PS_ALIGNMENT_NONE ((uint16)0xffff)

Definition at line 54 of file ps_alignment.h.

## Typedef Documentation

## ps_alignment_entry_t

typedef struct ps_alignment_entry_s ps_alignment_entry_t

Definition at line 72 of file ps_alignment.h.

## ps_alignment_iter_t

typedef struct ps_alignment_iter_s ps_alignment_iter_t

Definition at line 93 of file ps_alignment.h.

## ps_alignment_t

typedef struct ps_alignment_s ps_alignment_t

Definition at line 86 of file ps_alignment.h.

## ps_alignment_vector_t

typedef struct ps_alignment_vector_s ps_alignment_vector_t

Definition at line 78 of file ps_alignment.h.

## 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.