In file ../include/EST_viterbi.h:

## class EST_Viterbi_Decoder

> A class that offers a generalised Viterbi decoder.

### Public Fields

  EST_Features | f For holding vlaues to pass to user called functions

### Public Methods

  | EST_Viterbi_Decoder (uclist_f_t a, unpath_f_t b) Construct a decoder with given candidate function and join function, as number of states is given this implies a beam search
  | EST_Viterbi_Decoder (uclist_f_t a, unpath_f_t b, int num_states) Construct a decoder with given candidate function and join function with a state size as specified
  | ~EST_Viterbi_Decoder ()
  void | set_beam_width (int w) Only for use in beam search mode: number of paths to consider
  void | set_cand_width (int w) Only for use in beam search mode: number of condidates to consider
  void | set_debug (int d) Output some debugging information
  void | set_big_is_good (int flag) Define is good scores are bigger or smaller.
  EST_VTCandidate* | add_cand_prune (EST_VTCandidate* newcand, EST_VTCandidate* allcands) Add a new candidtate to list if better than others, pruning the list if required
  void | initialise (EST_Relation* r) Build the initial table from a EST_Relation
  void | set_pruning_parameters (float beam, float ob_beam) set beam widths for pruning
  void | search (void) Do the the actual search
  bool | result (const EST_String &n) Extract the result from the table and store it as a feature on the related EST_Item in the given EST_Relation named as `n`.
  void | copy_feature (const EST_String &n) Copy named feature from the best path to related stream item

### Public

  | Unfortunately using MAX_DOUBLE doesn't do the right thing
  | (eg.

## Documentation

> A class that offers a generalised Viterbi decoder.

> This class can be used to find the best path through a set of candidates based on liklihoods of the candidates and some combination function. The candidate list and joining are not included in the decoder itself but are user defined functions that are specified as construction time.

> Those functions need to return a list of candidates and score a join of a path to a candidate and (optionally define a state).

> Although this offers a full Viterbi search it may also be used as a generalised beam search.

> See `viterbi_main.cc` for an example of using this.

`EST_Features f`
  For holding vlaues to pass to user called functions

`Unfortunately using MAX_DOUBLE doesn't do the right thing`
  Unfortunately using MAX_DOUBLE doesn't do the right thing

`(eg.`
  (eg. comparison don't work with MAX_DOUBLE on alphas), so

`EST_Viterbi_Decoder(uclist_f_t a, unpath_f_t b)`
  Construct a decoder with given candidate function and join function, as number of states is given this implies a beam search

`EST_Viterbi_Decoder(uclist_f_t a, unpath_f_t b, int num_states)`
  Construct a decoder with given candidate function and join function with a state size as specified

`~EST_Viterbi_Decoder()`

`void set_beam_width(int w)`
  Only for use in beam search mode: number of paths to consider

`void set_cand_width(int w)`
  Only for use in beam search mode: number of condidates to consider

`void set_debug(int d)`
  Output some debugging information

`void set_big_is_good(int flag)`
  Define is good scores are bigger or smaller. This allows the search to work for likelihoods probabailities, scores or whatever

`EST_VTCandidate* add_cand_prune(EST_VTCandidate* newcand, EST_VTCandidate* allcands)`
  Add a new candidtate to list if better than others, pruning the list if required

`void initialise(EST_Relation* r)`
  Build the initial table from a EST_Relation

`void set_pruning_parameters(float beam, float ob_beam)`
  set beam widths for pruning

`void search(void)`
  Do the the actual search

`bool result(const EST_String &n)`
  Extract the result from the table and store it as a feature on the related EST_Item in the given EST_Relation named as `n`. Return FALSE if no path is found.

`void copy_feature(const EST_String &n)`
  Copy named feature from the best path to related stream item

This class has no child classes.

Author:
  Alan W Black (awb@cstr.ed.ac.uk): July 1996

Alphabetic index HTML hierarchy of classes or Java

This page is part of the Edinburgh Speech Tools Library documentation
Copyright University of Edinburgh 1997
Contact: speech_tools@cstr.ed.ac.uk