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

📄 anno_05.cc

📁 这是一个从音频信号里提取特征参量的程序
💻 CC
字号:
// file: $isip/class/mmedia/Annotation/anno_05.cc// version: $Id: anno_05.cc,v 1.5 2002/11/24 16:43:37 gao Exp $//// isip include files//#include "Annotation.h"// method: getFeature//// arguments://  const String& feature: (input) annotation feature//// return: value of the feature//// this method assigns the input object top the current object//String Annotation::getFeature(const String& feature_a) {  // declare local variables  //  String value;  // check if the feature is present  //  if (feature_map_d.containsKey(feature_a)) {    value.assign(*feature_map_d.get(feature_a));  }  // return the feature value  //  return value;}// method: getFeatureNames//// arguments://  Vector<String>& features: (output) vector of feature names//// return: logical error status//// method to return a vector of all feature names//boolean Annotation::getFeatureNames(Vector<String>& features_a) {  // declare local variables  //  boolean status = false;    // get the vector of feature names from the feature map  //  status = feature_map_d.keys(features_a);    // return the logical status  //  return status;}// method: unsetFeatures//// arguments: none//// return: logical error status//// method to set all the features to an empty string//boolean Annotation::unsetFeatures() {  // declare local variables  //  String null;  Vector<String> keys;    // get the vector of values from the feature map  //  feature_map_d.keys(keys);  // loop over all values and set them to null strings  //  null.assign(String::EMPTY);  for (int i = 0; i < keys.length(); i++) {    feature_map_d.get(keys(i))->assign(null);      }    // exit gracefully  //  return true;    }// method: assign//// arguments://  const Annotation& arg: (input) annotation object//// return: logical error status//// this method assigns the input object top the current object//boolean Annotation::assign(const Annotation& arg_a) {  // assign input object to the current object  //  id_d.assign(arg_a.id_d);  type_d.assign(arg_a.type_d);    feature_map_d.assign(arg_a.feature_map_d);  start_d = arg_a.start_d;  end_d = arg_a.end_d;  channel_index_d = arg_a.channel_index_d;    // exit gracefully  //  return true;}// method: sofSize//// arguments: none//// return: return: size of objec//// this method returns the size of the object in the Sof file and is// used for binary write//long Annotation::sofSize() const {  // declare local variables  //  long obj_size = 0;  // determine the size of the object  //  obj_size = type_d.sofSize() + feature_map_d.sofSize();  // add the space required for the channel index  //  obj_size += channel_index_d.sofSize();  // return the object size  //  return obj_size;}// method: clear//// arguments://  Integral::CMODE cmode: (input) clear mode//// return: logical error status//// this method clears the content of the current object//boolean Annotation::clear(Integral::CMODE cmode_a) {  // clear the member data  //  id_d.clear(cmode_a);  type_d.clear(cmode_a);  feature_map_d.clear(cmode_a);  start_d = (Anchor*)NULL;  end_d = (Anchor*)NULL;  channel_index_d = DEF_CHANNEL_INDEX;    // exit gracefully  //  return true;  }// method: compare//// arguments://  const String& arg1: (input) first anchor id//  const String& arg2: (input) second anchor id//// return: logical error status//// this method determines if the base id's are the same//boolean Annotation::compare(const String& arg1_a,			    const String& arg2_a)  const {  // declare local variables  //  long pos1;  String temp1;  long pos2;  String temp2;    // find the position of the first delimiter in the id  //  pos1 = arg1_a.lastChr(L":");  pos2 = arg2_a.lastChr(L":");  // determine the base from the given id for the first  //  if (pos1 == Integral::NO_POS) {    temp1.assign(arg1_a);  }  else {    arg1_a.substr(temp1, pos1, -1);  }  // determine the base from the given id for the second  //    if (pos1 == Integral::NO_POS) {    temp2.assign(arg2_a);  }  else {    arg2_a.substr(temp2, pos2, -1);  }    // determine if the id's are equal  //  return (temp1.eq(temp2));}// method: eq//// arguments://  const Annotation& arg: (input) annotation object//// return: logical error status//// this method determines if the input object is equal to the current object//boolean Annotation::eq(const Annotation& arg_a) const {  // check if their id's are the same  //  if (!compare(id_d, arg_a.id_d)) {    return false;  }    // check if their type fields are the same  //  if (!type_d.eq(arg_a.type_d)) {    return false;  }    // check if the feature maps are the same  //  if (!feature_map_d.eq(arg_a.feature_map_d)) {    return false;  }    // exit gracefully  //  return true;  }

⌨️ 快捷键说明

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