quick start:g++ [flags ...] file ... -l /isip/tools/lib/$ISIP_BINARY/lib_pr.a #include <LanguageModel.h> LanguageModel(); boolean load(const String& model_file_a, const String& stat_file_a, Vector<SearchLevel>& search_levels_a); boolean load(const String& model_file_a, const String& stat_file_a); boolean store(String& model_file_a, String& stat_file_a, Vector<SearchLevel>& search_levels_a, FORMAT format_a = DEF_FORMAT); boolean setNumLevels(const String& file_a) long getNumLevels(); boolean getLevel(SearchLevel& search_level_a, long index_a);
description:LanguageModel lm; Vector<SearchLevel> level(3); lm.load(L"model_file.sof", L"stat_file.sof", level) lm.store(L"output_model.sof", L"output_stat.sof", level, LanguageModel::JSGF)
static const String CLASS_NAME;
enum ALGORITHM { JSGF_1_0 = 0, NGRAM_ARPA, DEF_ALGORITHM = JSGF_1_0 };
enum FORMAT { DIGRAPH = 0, JSGF, DEF_FORMAT = DIGRAPH };
static const NameMap ALGO_MAP;
static const NameMap IMPL_MAP;
static const NameMap NORM_MAP;
static const long DEF_NUM_LEVEL;
static const String DEF_GRAPH_START;
static const String DEF_GRAPH_TERM;
static const String PARAM_STAT;
static const String PARAM_STAT_HASH;
static const long ERR = 90100;
long num_level_d;
Vector<SearchLevel> search_levels_d;
ALGORITHM algorithm_d;
String graph_start_d;
String graph_term_d;
static MemoryManager mgr_d;
static const String& name();
static boolean diagnose(Integral::DEBUG debug_level);
boolean debug(const unichar* msg_a) const;
~LanguageModel();
LanguageModel();
boolean assign(const LanguageModel& arg_a);
LanguageModel& operator=(const LanguageModel& arg_a);
boolean eq(const LanguageModel& arg_a) const;
long sofSize() const;
boolean read(Sof& sof_a, const String& tag_a, SearchLevel& level_a);
boolean write(Sof& sof_a, long tag_a, const String& name_a) const;
static void* operator new(size_t size);
static void* operator new[](size_t size);
static void operator delete(void* ptr);
static void operator delete[](void* ptr);
static boolean setGrowSize(long grow_size);
boolean clear(Integral::CMODE ctype_a);
long getNumLevels();
boolean setNumLevels(const String& file_a);
boolean getLevel(SearchLevel& search_level_a, long index_a);
boolean load(const Vector<String>& files_a, const Vector<String>& tags_a);
boolean load(const Vector<String>& files_a, const Vector<String>& tags_a, Vector<SearchLevel>& search_levels_a);
boolean load(const String& model_file_a, const String& stat_file_a);
boolean load(const String& model_file_a, const String& stat_file_a, Vector<SearchLevel>& search_levels_a);
boolean load(const String& model_file_a, const String& stat_file_a, const long level_index_a, Vector<SearchLevel>& search_levels_a);
boolean load(const String& model_file_a, Vector<SearchLevel>& search_levels_a);
boolean loadNonGrammars(Sof& model_file_a, Vector& search_levels_a, long level_index_a);
boolean store(const String& model_file_a, const String& stat_file_a, Vector<SearchLevel>& search_levels_a, FORMAT format_a = DEF_FORMAT);
boolean store(const String& model_file_a, Vector<SearchLevel>& search_levels_a, FORMAT format_a = DEF_FORMAT);
boolean storeNonGrammars(Sof& model_file_a, Vector& search_levels_a, long level_index_a);
boolean writeOneRule(Sof& sof_a, long tag_a, const String& format_a, const String& name_a, Vector& rules_a) const;
boolean readOneRule(Sof& sof_a, long tag_a, const String& format_a, const String& name_a, Vector& rule_list_a);
boolean readJSGF(Sof& sof_a, Vector<String>& nonspeech_symbol_list_a, Vector<String>& sub_symbol_list_a, DiGraph<String>& sub_graph_a, String& sub_graph_name_a);
String convertToJSGF(DiGraph<SearchNode>& graph_a, SearchSymbol grammar_name_a);
boolean convertGraph(DiGraph<String>& symbol_graph_a, DiGraph<SearchNode>& node_graph_a, long& num_symbols_a, SearchLevel& level_a);
boolean alignGraphs(Vector< DiGraph<String> >& graph_list_a, Vector<SearchSymbol>& symbol_table_a, Vector<String>& graph_name_list_a);
boolean setGraphEndings(Sof& sof_a);
boolean getSubgroup(SingleLinkedList<GraphArc<SearchNode> > subgroup_list_a, Vector<SingleLinkedList<GraphArc<SearchNode> > > & subgroup_table_a, GraphVertex<SearchNode>* verts_a[], long num_vertices_a);
boolean isNonSpeechDefinition(String& arg_a);
// isip include files // #include <LanguageModel.h> // declare two LanguageModel instances // LanguageModel lm_1, lm_2; // declare two sets of search levels // Vector<SearchLevel> levels_1(3), levels_2(3); // define output file names // String model_file_1(L"output_model_1.sof"); String stat_file_1(L"output_stat_1.sof"); String model_file_2(L"output_model_2.sof"); String stat_file_2(L"output_stat_2.sof"); // load the JSGF grammar from the Sof file and Statistical models from // into the first set of search levels // if (!lm_1.load(L"diagnose_input_model.sof", L"diagnose_input_stat.sof", levels_1)) { return Error::handle(name(), L"load JSGF input model files", Error::TEST, __FILE__, __LINE__); } // write the first set of search levels to files in ISIP DiGraph format // lm_1.store(model_file_1, stat_file_1, levels_1); // load the same set of models in DiGraph format from the Sof files // written in the previous step // if (!lm_2.load(model_file_1, stat_file_1, levels_2)) { return Error::handle(name(), L"load DiGraph format model files", Error::TEST, __FILE__, __LINE__); } // write the second set of search levels to files in JSGF format // lm_2.store(model_file_2, stat_file_2, levels_2, LanguageModel::JSGF);
<ISIP_JSGF_1_0_START> <ISIP_JSGF_1_0_TERM>The user needs to define these symbols in the grammar file in the text format before creating the grammar file using the isip_model_creator utility.