 
 
	 
In file ../include/EST_viterbi.h:
| class EST_Viterbi_Decoder | 
A class that offers a generalised Viterbi decoder.
| ![[more]](icon1.gif) EST_Features | f For holding vlaues to pass to user called functions | 
| ![[more]](icon1.gif)  | 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]](icon1.gif)  | 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]](icon1.gif)  | ~EST_Viterbi_Decoder () | 
| ![[more]](icon1.gif) void | set_beam_width (int w) Only for use in beam search mode: number of paths to consider | 
| ![[more]](icon1.gif) void | set_cand_width (int w) Only for use in beam search mode: number of condidates to consider | 
| ![[more]](icon1.gif) void | set_debug (int d) Output some debugging information | 
| ![[more]](icon1.gif) void | set_big_is_good (int flag) Define is good scores are bigger or smaller. | 
| ![[more]](icon1.gif) 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]](icon1.gif) void | initialise (EST_Relation* r) Build the initial table from a EST_Relation | 
| ![[more]](icon1.gif) void | set_pruning_parameters (float beam, float ob_beam) set beam widths for pruning | 
| ![[more]](icon1.gif) void | search (void) Do the the actual search | 
| ![[more]](icon1.gif) 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]](icon1.gif) void | copy_feature (const EST_String &n) Copy named feature from the best path to related stream item | 
| ![[more]](icon1.gif)  | Unfortunately using MAX_DOUBLE doesn't do the right thing | 
| ![[more]](icon1.gif)  | (eg. | 
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
EST_Features f
 Unfortunately using MAX_DOUBLE doesn't do the right thing
 Unfortunately using MAX_DOUBLE doesn't do the right thing
 (eg.
 (eg.
 EST_Viterbi_Decoder(uclist_f_t a, unpath_f_t b)
 EST_Viterbi_Decoder(uclist_f_t a, unpath_f_t b)
 EST_Viterbi_Decoder(uclist_f_t a, unpath_f_t b, int num_states)
 EST_Viterbi_Decoder(uclist_f_t a, unpath_f_t b, int num_states)
 ~EST_Viterbi_Decoder()
 ~EST_Viterbi_Decoder()
 void set_beam_width(int w)
void set_beam_width(int w)
 void set_cand_width(int w)
void set_cand_width(int w)
 void set_debug(int d)
void set_debug(int d)
 void set_big_is_good(int flag)
void set_big_is_good(int flag)
 EST_VTCandidate* add_cand_prune(EST_VTCandidate* newcand, EST_VTCandidate* allcands)
EST_VTCandidate* add_cand_prune(EST_VTCandidate* newcand, EST_VTCandidate* allcands)
 void initialise(EST_Relation* r)
void initialise(EST_Relation* r)
 void set_pruning_parameters(float beam, float ob_beam)
void set_pruning_parameters(float beam, float ob_beam)
 void search(void)
void search(void)
 bool result(const EST_String &n)
bool result(const EST_String &n)
 void copy_feature(const EST_String &n)
void copy_feature(const EST_String &n)
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