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

📄 extf_gp_0.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: extract_feature/extf_gp_0.cc//// a simple command line parser//// system include files//#include <string.h>// local include files//#include "extract_feature.h"#include "extract_feature_constants.h"// function: get_parameters_cc//// arguments:////  int argc: (input) argc from the main program//  char** argv: (input) argv from the main program//// return value: a logical_1 indicating status//// this function parses command line arguments//logical_1 Extract_feature::get_parameter_cc(int_4 argc, char_1** argv) {  // local variable  //  logical_1 if_set_fbanks = ISIP_FALSE;    // loop over all of the arguments and set the appropriate variables  //  for (int_4 index = 1; index < argc; index++) {    if (strcmp((char*)EXTF_OPT_WINDOW_TYPE, (char*)argv[index]) == (int)0) {      // set the flag to true      //      strcpy((char*)window_type_d, (char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_PRE_EMPH_COEFF, (char*)argv[index]) == (int)0) {      // set the flag to true      //      use_pre_emph_d = ISIP_TRUE;      pre_emph_coeff_d = (float_8)atof((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_LIFTER_COEFF, (char*)argv[index]) == (int)0) {      // set the flag to true      //      use_liftering_d = ISIP_TRUE;      lifter_coeff_d = (float_8)atof((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_FRAME_DUR, (char*)argv[index]) == (int)0) {            // copy the output filename      //      frame_dur_d = (float_8)atof((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_WINDOW_DUR, (char*)argv[index]) == (int)0) {            // copy the output filename      //      window_dur_d = (float_8)atof((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_SF, (char*)argv[index]) == (int)0) {            // copy the output filename      //      sample_freq_d = (float_8)atof((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_NUM_CHANS, (char*)argv[index]) == (int)0) {            // copy the output filename      //      num_chans_d = (int_4)atoi((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_CHAN_NUM, (char*)argv[index]) == (int)0) {            // copy the output filename      //      channel_d = (int_4)atoi((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_SWAP, (char*)argv[index]) == (int)0) {            // copy the output filename      //      swap_byte_d = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_NORMALIZE, (char*)argv[index]) == (int)0) {            // copy the output filename      //      cepstral_mean_subtract_d = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_OUT_MODE, (char*)argv[index]) == (int)0) {            // copy the output filename      //      index++;      if (strcmp((char*)EXTF_OPT_OUT_MODE_ASCII, (char*)argv[index]) == (int)0) {	output_mode_d = (int_4)EXTF_OUT_MODE_ASCII;      }      else if (strcmp((char*)EXTF_OPT_OUT_MODE_BINA, (char*)argv[index]) == (int)0) {	output_mode_d = (int_4)EXTF_OUT_MODE_BINA;      }    }    else if (strcmp((char*)EXTF_OPT_DELTA_WIN, (char*)argv[index]) == (int)0) {            // copy the output filename      //      delta_win_d = (int_4)atoi((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_NUM_FBANKS, (char*)argv[index]) == (int)0) {            // copy the output filename      //      num_fbanks_d = (int_4)atoi((char*)argv[++index]);      if_set_fbanks = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_MEL_WIDTH, (char*)argv[index]) == (int)0) {            // copy the output filename      //      mel_width_d = (float_8)atof((char*)argv[++index]);    }        else if (strcmp((char*)EXTF_OPT_FILE_IN, (char*)argv[index]) == (int)0) {      // copy the input filename      //      strcpy((char*)input_file_d, (char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_FILE_OUT, (char*)argv[index]) == (int)0) {      // copy the name of the output files list      //      strcpy((char*)output_file_d, (char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_ALGO_MEAN, (char*)argv[index]) == (int)0) {            // copy the output filename      //      num_coeffs_d[EXTF_ALGO_MEAN]++;    }    else if (strcmp((char*)EXTF_OPT_ALGO_FBA, (char*)argv[index]) == (int)0) {            // copy the output filename      //      num_coeffs_d[EXTF_ALGO_FBA] = (int_4)atoi((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_ALGO_FFT_MFCC, (char*)argv[index]) == (int)0) {            // copy the output filename      //      num_coeffs_d[EXTF_ALGO_FFT_MFCC] = (int_4)atoi((char*)argv[++index]);    }    else if (strcmp((char*)EXTF_OPT_C0, (char*)argv[index]) == (int)0) {      // set the c0 flag      //      c0_d = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_DELTA, (char*)argv[index]) == (int)0) {      // set the delta flag      //      delta_d = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_DELTA_DELTA, (char*)argv[index]) == (int)0) {      // set the flag true      //      delta_delta_d = ISIP_TRUE;      // delta is needed for delta_delta      //      delta_d = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_ZSM, (char*)argv[index]) == 0) {      zero_mean_d = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_EN, (char*)argv[index]) == 0) {      energy_norm_d = ISIP_TRUE;    }    // check for help: display the help screen    //    else if (strcmp((char*)EXTF_OPT_HELP, (char*)argv[index]) == 0) {      // allocate memory for the command string      //      char_1 command_string[ISIP_MAX_STRING_LENGTH];      // create the command line to display the help file      //      sprintf((char*)command_string, (char*)ISIP_HELP_FORMAT,	      (char*)EXTF_HELP_FILE);      // display the help file      //      system((char*)command_string);            // exit gracefully      //      return ISIP_FALSE;    }        // check if we need do VTLN    //    else if (strcmp((char*)EXTF_OPT_VTLN, (char*)argv[index]) == 0) {      vtln_d = ISIP_TRUE;    }    else if (strcmp((char*)EXTF_OPT_NON_VTLN, (char*)argv[index]) == 0) {      vtln_d = ISIP_FALSE;    }    // check for normalization factor    else if (strcmp((char*)EXTF_OPT_VTLN_FACTOR, (char*)argv[index]) == 0) {      vtln_factor_d = (float_8)atof((char*)argv[++index]);    }    // check for VTLN algorithm    else if (strcmp((char*)EXTF_OPT_BILINEAR, (char*)argv[index]) == 0) {      vtln_algo_d = EXTF_BILINEAR;    }        else {      // return with failure      //      return ISIP_FALSE;    }  }  // check num_fbanks and mel_width sets  //  if user set num_fbanks, we should ignore mel_width  //  if (if_set_fbanks) {    mel_width_d = (float_8)0;  }  // if user specifies mel_width, we need to compute the number of filterbanks  //  if (mel_width_d != (float_8)0) {    float_8 max_mel = 2595 * log10(1 + sample_freq_d/(2*700.0));    max_mel = max_mel / mel_width_d;    num_fbanks_d = (int_4) floor(max_mel);    if ((max_mel - (float_8)num_fbanks_d) < 0.00001) {      num_fbanks_d--;    }  }    // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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