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

📄 extf_func_5.cc

📁 这是处理语音信号的程序
💻 CC
字号:
// file: extract_feature/extf_func_5.cc//// isip include files//#include "extract_feature.h"#include <Signal.h>#include <memory.h>#include "extract_feature_constants.h"#include <signal_constants.h>// method: func_fbank_cc//// arguments://  float_8* amplitude_a: (output) filter bank amplitudes//  int_4 order_bank_a: (input) number of filters//  float_8* signal_a: (input) signal to run filters upon//  int_4 num_samples_a: (input) size of signal//// This method computes the filter bank amplitudes on the normal// frequence scale//logical_1 Extract_feature::func_fbank_cc(float_8* amplitude_a, 					 float_8* signal_a,					 int_4 num_samples_a) {  // compute the frequence pointers in the normal frequence scale  //  int len = num_samples_a/2;  float_8* freq = new float_8[len+1];  memset(freq, 0, (len+1) * sizeof(float_8));  float_8 sf = 8000.0;   for (int k = 0; k<len+1; k++) {    freq[k] = (sf/(float_8)2) * (k/(float_8)len);  }  // compute the center frequence  //  float_8* cenf = new float_8[num_fbanks_d+2];  memset(cenf, 0, (num_fbanks_d+2) * sizeof(float_8));  compute_cenf_cc(len, cenf, NULL);  // compute the filter bank amplitude via triangle filters  //  for (int i = 0; i<num_fbanks_d; i++) {    amplitude_a[i] = 0.0;    for (int l = 0; l<len; l++) {      if ((freq[l] >= cenf[i]) && (freq[l] < cenf[i+1])) {      	amplitude_a[i] += signal_a[l]*(freq[l]-cenf[i])/					  (cenf[i+1]-cenf[i]);      }      else if ((freq[l] >= cenf[i+1]) && (freq[l] < cenf[i+2])) {	amplitude_a[i] += signal_a[l]*(freq[l]-cenf[i+1])/					  (cenf[i+2]-cenf[i+1]);      }    }  }  // free memory  //  delete [] freq;  delete [] cenf;  // exit gracefully  //  return ISIP_TRUE;}

⌨️ 快捷键说明

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