name: HierarchicalSearch

synopsis:

g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_search.a

#include <HierarchicalSearch.h>

HierarchicalSearch();
HierarchicalSearch(const HierarchicalSearch& copy_search);
boolean setNumLevels(long num_levels);
SearchLevel& getSearchLevel(long level)
boolean decode(FrontEnd& fe, long num_frames = DEF_NUM_FRAMES);
boolean getHypotheses(String& output_hyp, float& total_score,
                      long& num_frames, long level = 0,
                      boolean detailed = false,
                      boolean cumulative = false);
quick start:

// configure FrontEnd
//
FrontEnd fe;

Sof front_end_sof;
front_end_sof.open(L"front_end.sof");
fe.read(front_end_sof, front_end_sof.first(fe.name()));
front_end_sof.close();

// configure HierarchicalSearch
//
HierarchicalSearch search_engine;
long num_levels = 3;
search_engine.setNumLevels(num_levels);

// read models
//
Sof model_sof;
model_sof.open(L"models.sof");

for (long curr_level = 0; curr_level < num_levels; curr_level++) {
  SearchLevel& level = search_engine.getSearchLevel(curr_level);
  level.load(model_sof);
}
model_sof.close();

// process the sentence
//
Filename speech_file(L"speech_file.raw");
fe.open(speech_file);
search_engine.decode(fe);
fe.close();

// get the best hypothesis
//
String best_hypothesis;
float score = 0;
long num_frames = 0;
search_engine.getHypotheses(best_hypothesis, score, num_frames);

description:

HierarchicalSearch class implements a hierarchical, synchronous, Viterbi search engine.

The basic premise behind this is as follows:
dependencies:

public constants:

error codes:

protected data:

required public methods:

class-specific public methods:

private methods:

examples:

notes: