In file ../include/EST_viterbi.h:

class EST_Viterbi_Decoder

A class that offers a generalised Viterbi decoder.

Public Fields

[more]EST_Features f
For holding vlaues to pass to user called functions

Public Methods

[more] 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
[more] 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
[more] ~EST_Viterbi_Decoder ()
[more]void set_beam_width (int w)
Only for use in beam search mode: number of paths to consider
[more]void set_cand_width (int w)
Only for use in beam search mode: number of condidates to consider
[more]void set_debug (int d)
Output some debugging information
[more]void set_big_is_good (int flag)
Define is good scores are bigger or smaller.
[more]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
[more]void initialise (EST_Relation* r)
Build the initial table from a EST_Relation
[more]void set_pruning_parameters (float beam, float ob_beam)
set beam widths for pruning
[more]void search (void)
Do the the actual search
[more]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.
[more]void copy_feature (const EST_String &n)
Copy named feature from the best path to related stream item

Public

[more] Unfortunately using MAX_DOUBLE doesn't do the right thing
[more] (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.

oEST_Features f
For holding vlaues to pass to user called functions

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

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

o 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

o 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

o ~EST_Viterbi_Decoder()

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

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

ovoid set_debug(int d)
Output some debugging information

ovoid 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

oEST_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

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

ovoid set_pruning_parameters(float beam, float ob_beam)
set beam widths for pruning

ovoid search(void)
Do the the actual search

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

ovoid 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