⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slev_03.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/stat/SearchLevel/slev_03.cc// version: $Id: slev_03.cc,v 1.6 2003/03/21 16:40:00 huang Exp $//// isip include files//#include "SearchLevel.h"// method: read//// arguments://  Sof& sof: (input) sof file object//  long tag: (input) sof object instance tag//  const String& name: (input) sof object instance name//// return: a boolean value indicating status//// this method has the object read itself from an Sof file//boolean SearchLevel::read(Sof& sof_a, long tag_a, const String& name_a) {  // read the instance of the object from the Sof file  //  if (!sof_a.find(name_a, tag_a)) {    return false;  }    // read the actual data from the sof file  //  if (!readData(sof_a)) {    return false;  }    // exit gracefully  //  return true;  }// method: readData//// arguments://  Sof& sof: (input) sof file object//  const String& pname: (input) parameter name//  long size: (input) size in bytes of object (or full_size)//  boolean param: (input) is the parameter name in the file?//  boolean nested: (input) are we nested?//// return: a boolean value indicating status//// this method has the object read itself from an Sof file. it assumes// that the Sof file is already positioned correctly.//boolean SearchLevel::readData(Sof& sof_a, const String& pname_a,			      long size_a, boolean param_a,			      boolean nested_a) {  Integral::DEBUG debug_level = Integral::NONE;  SofParser parser;  parser.setDebug(debug_level);      // are we nested?  //  if (nested_a) {    parser.setNest();  }    // load the parser  //  if (!parser.load(sof_a, size_a)) {    return Error::handle(name(), L"readData", Error::READ,			 __FILE__, __LINE__, Error::WARNING);  }	      // read the nsymbol parameters  //  if (parser.isPresent(sof_a, PARAM_USE_NSYMBOL)) {    if (!use_nsymbol_d.readData(sof_a, PARAM_USE_NSYMBOL,				parser.getEntry(sof_a,						PARAM_USE_NSYMBOL))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    use_nsymbol_d = DEF_USE_NSYMBOL;  }    if (parser.isPresent(sof_a, PARAM_NSYMBOL_ORDER)) {    if (!nsymbol_order_d.readData(sof_a, PARAM_NSYMBOL_ORDER,		     parser.getEntry(sof_a,				     PARAM_NSYMBOL_ORDER))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    nsymbol_order_d = DEF_NSYMBOL_ORDER;  }    if (parser.isPresent(sof_a, PARAM_NSYMBOL_MODEL)) {    if (!nsymbol_file_d.readData(sof_a, PARAM_NSYMBOL_MODEL,			   parser.getEntry(sof_a,					   PARAM_NSYMBOL_MODEL))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  // read num of mixtures  //  if (parser.isPresent(sof_a, PARAM_NUM_OF_MIXTURES)) {    if (!num_of_mixtures_d.readData(sof_a, PARAM_NUM_OF_MIXTURES,			   parser.getEntry(sof_a,					   PARAM_NUM_OF_MIXTURES))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  // read the model type  //  if (parser.isPresent(sof_a, PARAM_STAT_MODEL_TYPE)) {    if (!StatisticalModel::TYPE_MAP.readElementData((long&)stat_model_type_d,						    sof_a,				  PARAM_STAT_MODEL_TYPE,			      parser.getEntry(sof_a, PARAM_STAT_MODEL_TYPE))) {            return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }         }  // read the scale and symbol insertion parameters  //  if (parser.isPresent(sof_a, PARAM_LM_SCALE)) {    if (!lm_scale_d.readData(sof_a, PARAM_LM_SCALE,		     parser.getEntry(sof_a,				     PARAM_LM_SCALE))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    lm_scale_d = DEF_LM_SCALE;  }    if (parser.isPresent(sof_a, PARAM_TR_SCALE)) {    if (!tr_scale_d.readData(sof_a, PARAM_TR_SCALE,		     parser.getEntry(sof_a,				     PARAM_TR_SCALE))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    tr_scale_d = DEF_TR_SCALE;  }    if (parser.isPresent(sof_a, PARAM_SYMBOL_PENALTY)) {    if (!symbol_penalty_d.readData(sof_a, PARAM_SYMBOL_PENALTY,			   parser.getEntry(sof_a,					   PARAM_SYMBOL_PENALTY))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    symbol_penalty_d = DEF_SYMBOL_PENALTY;  }  // read the context parameters  //  if (parser.isPresent(sof_a, PARAM_USE_CONTEXT)) {    if (!use_context_d.readData(sof_a, PARAM_USE_CONTEXT,			   parser.getEntry(sof_a,					   PARAM_USE_CONTEXT))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    use_context_d = DEF_USE_CONTEXT;  }  if (parser.isPresent(sof_a, PARAM_LEFT_CONTEXT_LENGTH)) {    if (!left_context_d.readData(sof_a, PARAM_LEFT_CONTEXT_LENGTH,				 parser.getEntry(sof_a,				 PARAM_LEFT_CONTEXT_LENGTH))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    left_context_d = DEF_LEFT_CONTEXT;  }  if (parser.isPresent(sof_a, PARAM_RIGHT_CONTEXT_LENGTH)) {    if (!right_context_d.readData(sof_a, PARAM_RIGHT_CONTEXT_LENGTH,				 parser.getEntry(sof_a,				 PARAM_RIGHT_CONTEXT_LENGTH))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    left_context_d = DEF_RIGHT_CONTEXT;  }        // read the lexical tree  //  if (parser.isPresent(sof_a, PARAM_USE_LEXICAL_TREE)) {    if (!use_lexical_tree_d.readData(sof_a, PARAM_USE_LEXICAL_TREE,			   parser.getEntry(sof_a,					   PARAM_USE_LEXICAL_TREE))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    use_lexical_tree_d = DEF_USE_LEXICAL_TREE;  }  // read the beam prunning parameters  //  if (parser.isPresent(sof_a, PARAM_USE_BEAM)) {    if (!use_beam_prune_d.readData(sof_a, PARAM_USE_BEAM,				   parser.getEntry(sof_a,						   PARAM_USE_BEAM))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }    else {    use_beam_prune_d = DEF_BEAM_PRUNE;  }  if (parser.isPresent(sof_a, PARAM_BEAM_THRESHOLD)) {    if (!beam_threshold_d.readData(sof_a, PARAM_BEAM_THRESHOLD,				   parser.getEntry(sof_a,						   PARAM_BEAM_THRESHOLD))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }    else {    beam_threshold_d = DEF_BEAM_THRESHOLD;  }        // read the instance prunning parameters  //  if (parser.isPresent(sof_a, PARAM_USE_INSTANCE)) {    if (!use_instance_prune_d.readData(sof_a, PARAM_USE_INSTANCE,				  parser.getEntry(sof_a,						  PARAM_USE_INSTANCE))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }    else {    use_instance_prune_d = DEF_INSTANCE_PRUNE;  }    if (parser.isPresent(sof_a, PARAM_INSTANCE_THRESHOLD)) {    if (!instance_threshold_d.readData(sof_a, PARAM_INSTANCE_THRESHOLD,				   parser.getEntry(sof_a,						   PARAM_INSTANCE_THRESHOLD))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }    else {    instance_threshold_d = DEF_INSTANCE_THRESHOLD;  }    // read the symbol occupancies parameters  //  if (parser.isPresent(sof_a, PARAM_WRITE_SYMBOL_OCCUPANCY)) {    if (!write_symbol_occupancy_d.readData(sof_a, PARAM_WRITE_SYMBOL_OCCUPANCY,					   parser.getEntry(sof_a,					      PARAM_WRITE_SYMBOL_OCCUPANCY))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }  else {    write_symbol_occupancy_d = DEF_WRITE_SYMBOL_OCCUPANCY;  }    if (parser.isPresent(sof_a, PARAM_SYMBOL_OCCUPANCY_FILE)) {    if (!symbol_occupancy_file_d.readData(sof_a, PARAM_SYMBOL_OCCUPANCY_FILE,					  parser.getEntry(sof_a,					       PARAM_SYMBOL_OCCUPANCY_FILE))) {      return Error::handle(name(), L"readData", Error::READ,			   __FILE__, __LINE__, Error::WARNING);    }      }    // exit gracefully  //  return true;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -