亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ec.cc,v

?? EC的語音編解碼
?? CC,V
字號:
head	1.6;access;symbols;locks; strict;comment	@// @;1.6date	97.01.06.00.24.42;	author ganapath;	state Exp;branches;next	1.5;1.5date	97.01.03.21.12.36;	author ganapath;	state Exp;branches;next	1.4;1.4date	96.12.28.04.20.49;	author ganapath;	state Exp;branches;next	1.3;1.3date	96.11.25.19.52.06;	author ganapath;	state Exp;branches;next	1.2;1.2date	96.11.05.17.20.25;	author ganapath;	state Exp;branches;next	1.1;1.1date	96.11.05.12.18.40;	author picone;	state Exp;branches;next	;desc@initial version.@1.6log@added a suppr_ceil parameter and a minimum db value.@text@// file: ec.cc//// system include files//#include <memory.h>#include <math.h>// local include files//#include "ec.h"#include "cb.h"#include "ec_constants.h"//-----------------------------------------------------------------------------//// public methods////-----------------------------------------------------------------------------//-----------------------------------------------------------------------------//// method: init_cc// description: initialization//// arguments: all user-controlled parameters related to the algorithm//// return: none//// this method initializes all internal parameters////-----------------------------------------------------------------------------void Echo_canceller::init_cc(double gamma, int N, int M, double beta1,			     double sigma_ly, double sigma_lu,			     double alpha_st, double alpha_yt, double cutoff,			     int hangt, double suppr, double tau) {  // reset parameters  //  gamma_d = gamma;  N_d = N;  M_d = M;  beta1_d = beta1;  beta2_d = beta1;  tau_d = tau;  start_speech_d = 0;  flag_d = 1;  sigma_Ly_d = sigma_ly;  sigma_Lu_d = sigma_lu;  alpha_st_d = alpha_st;  alpha_yt_d = alpha_yt;  CUTOFF_d = cutoff;  HANGT_d = hangt;  SUPPR_d = suppr;    // reset the high-pass filter  //  s_i_d = 0.0;  sdc_d = 0.0;  sdc_im1_d = 0.0;  // reset the circular buffers  //  y_d.allocate_cc(N_d + M_d);  s_d.allocate_cc(N_d + M_d);  u_d.allocate_cc(M_d);  e_d.allocate_cc(M_d);  // allocate a buffer for the reference signal power computation  //  y_tilde_d.allocate_cc(N_d);  // allocate coefficient memory  //  if (a_d != (double*)NULL)    {delete [] a_d;}  a_d = new double[N_d];  memset(a_d, (int)0, sizeof(double)*N_d);  // reset absolute time  //  i_d = (int)0;    // reset the power computations (for y and u)  //  Ly_d = CUTOFF_d;  Lu_d = 0.0;  // reset the near-end speech detector  //  s_tilde_d = 0.0;  HCNTR_d = (int)0;  // exit gracefully  //}//-----------------------------------------------------------------------------//// method: process_cc// description: processes one sample of data through the echo canceller//// arguments://  double ref: reference signal (outgoing speech)//  double sig: incoming signal (signal plus echo)//// return://  a double value containing the echo canceller output////-----------------------------------------------------------------------------double Echo_canceller::process_cc(double ref, double sig) {  // declare local variables that are used more than once  //  int k;  //***************************************************************************  //  // flow A on pg. 428  //  //***************************************************************************  // eq. (16): high-pass filter the input to generate the next value;  //           push the current value into the circular buffer  //  // sdc_im1_d = sdc_d;  // sdc_d = sig;  //  s_i_d = sdc_d;  //  s_d = s_i_d;  //  s_i_d = (double)(1.0 - gamma_d) * s_i_d  //    + (double)(0.5 * (1.0 - gamma_d)) * (sdc_d - sdc_im1_d);    // push the reference data onto the circular buffer  //  y_d = ref;  s_d = sig;    // eq. (2): compute r  //  double r = 0;    for(k=0; k<N_d; k++) {    r += a_d[k] * (double)y_d(-k);  }    // eq. (3): compute the output value (see figure 3) and the error  // note: the error is the same as the output signal when near-end  // speech is not present  //  double u_suppr = (double)s_d - r;    e_d = u_d = u_suppr;    // eq. (12) and (13): update near-end speech detector  //  s_tilde_d = (1.0 - alpha_st_d) * s_tilde_d     + alpha_st_d * fabs((double)s_d);  y_tilde_d = (1.0 - alpha_yt_d) * (double)y_tilde_d     + alpha_st_d * fabs((double)y_d);    //***************************************************************************  //  // flow B on pg. 428  //  //***************************************************************************    // compute the new convergence factor  //  double Py = Ly_d * Ly_d;  if (HCNTR_d > 0){    Py = 1.0;  }    // Vary rate of adaptation depending on position in the file  // Do not do this for the first (DEFAULT_UPDATE_TIME) secs after speech  // has begun of the file to allow the echo cancellor to estimate the  // channel accurately  //  if ( start_speech_d != 0 ){    if ( i_d > (DEFAULT_T0 + start_speech_d)*(SAMPLE_FREQ) ){      beta2_d = max_cc(MIN_BETA,		       beta1_d * exp((-1/tau_d)*((i_d/(double)SAMPLE_FREQ) -						 DEFAULT_T0 -						 start_speech_d)));    }  }  else {beta2_d = beta1_d;}    double two_beta = beta2_d / Py;  if (two_beta > MAX_BETA)    {two_beta = MAX_BETA;}    // eq. (15): update power estimate of the return signal power  //  Lu_d = (1.0 - sigma_Lu_d) * Lu_d + sigma_Lu_d * fabs((double)u_d);    // eq. (10): update power estimate of the reference  //  Ly_d = (1.0 - sigma_Ly_d) * Ly_d + sigma_Ly_d * fabs((double)y_d);  if (Ly_d < CUTOFF_d)    {Ly_d = CUTOFF_d;}    // eq. (14): is there near-end speech?  //  double max_y_tilde = 0;  for (k=0; k<N_d; k++) {    if (max_y_tilde < y_tilde_d(-k))      {max_y_tilde = y_tilde_d(-k);}  }  if (s_tilde_d > (0.2*max_y_tilde))    {      HCNTR_d = HANGT_d;    }  else if (HCNTR_d > (int)0)    {      HCNTR_d--;    }  // update coefficients if no near-end speech  //  if ((HCNTR_d == 0) && (i_d % M_d == (int)0)){        // loop over all filter coefficients    //    for (k=0; k<N_d; k++) {            // eq. (7): compute an expectation over M_d samples       //      double grad = 0.0;            for (int m=0; m<M_d; m++)	{grad += (double)e_d(-m) * (double)y_d(-m-k);}            // eq. (7): update the coefficient      //      a_d[k] += two_beta * grad;    }  }  if ((flag_d == 1) && ((Ly_d/Lu_d) < pow((double)10.0,(ONSET_THRESH/10.0)))) {    start_speech_d = i_d/8000.0;    flag_d = 0;  }  // paragraph below eq. (15): if no near-end speech,  // check for residual error suppression  //  float  suppr_value = pow(10,SUPPR_d/10.0);  if ((HCNTR_d == 0) && ((Lu_d/Ly_d) < suppr_value) &&      ((10*log(Lu_d/Ly_d)) > EC_MIN_DB_VALUE)) {        float suppr_factor = (1/(float)(SUPPR_FLOOR-SUPPR_CEIL))*10*log(Lu_d/Ly_d)      - SUPPR_CEIL/(float)(SUPPR_FLOOR - SUPPR_CEIL);    u_suppr = pow(10.0,(suppr_factor)*RES_SUPR_FACTOR/10.0)*u_suppr;      }    // exit gracefully  //  i_d++;  return u_suppr;}//-----------------------------------------------------------------------------// method: constructor// description: creates an echo canceller object and initializes all buffers////-----------------------------------------------------------------------------Echo_canceller::Echo_canceller() {  // initialize coefficient memory  //  a_d = (double*)NULL;  // exit gracefully  //}Echo_canceller::~Echo_canceller() {    // free coefficient memory  //  delete [] a_d;  // exit gracefully  //}//-----------------------------------------------------------------------------//// method: max_cc// description: returns the maximum of two numbers (I hate macros!)////-----------------------------------------------------------------------------int Echo_canceller::max_cc(int x, int y) {  if (x > y)    {return x;}  else    {return y;}}double Echo_canceller::max_cc(double x, double y) {  if (x > y)    {return x;}  else    {return y;}}//-----------------------------------------------------------------------------//// method: clip_cc// description: clips a sample value to +/-MAX_AMPL////-----------------------------------------------------------------------------short int Echo_canceller::clip_cc(double value) {  // restore the range of value  //  value *= AMPL_SCALE_2;  // clip it to +/-AMPL_SCALE_2  //  if (value > AMPL_SCALE_2)    {return (short int)AMPL_SCALE_2;}  else if (value < -AMPL_SCALE_2)    {return (short int)-AMPL_SCALE_2;}  else    {return (short int)rint(value);}}@1.5log@*** empty log message ***@text@a209 6  /*    if ( i_d%500 == 0 ){    printf ( "%f %f\n", i_d/8000.0, s_tilde_d/max_y_tilde );  }  */    a255 6    /*    if ( i_d%500 == 0 ){      printf ( "%f %f %f %f\n", i_d/8000.0,10*log(Lu_d/Ly_d), suppr_factor, pow(10.0,(1-suppr_factor)*RES_SUPR_FACTOR/10.0) );    }    */    @1.4log@*** empty log message ***@text@d187 1a187 1d209 8a216 2    if (s_tilde_d > (0.5*max_y_tilde))d254 16a269 2  if ((HCNTR_d == 0) && ((Lu_d/Ly_d) < SUPPR_d)) {    u_suppr = pow(10.0,(RES_SUPR_FACTOR/10.0))*u_suppr;	@1.3log@corrected equation for u_suppr, changed onset_thresh to supr_factor.@text@d172 1a172 1d186 1a187 2  else {beta2_d = beta1_d;}  a209 1  d218 1a218 1  d221 1a221 1  if ((HCNTR_d == 0) && (i_d % M_d == (int)0)) {d239 1a239 1  d244 1a244 1  d248 2a249 2  if ((HCNTR_d == (int)0) && ((Lu_d/Ly_d) < SUPPR_d)) {    u_suppr = pow(10.0,(RES_SUPR_FACTOR/10.0))*ref;@1.2log@no changes made in algorithm. only cosmetic changes.@text@d251 1a251 1    u_suppr = pow(10.0,2*(ONSET_THRESH/10.0))*ref;@1.1log@Initial revision@text@a12 1d186 2a187 3  else {    beta2_d = beta1_d;  }d210 1a210 1d242 2a243 2  if ( (flag_d == 1) && ((Ly_d/Lu_d) < pow((double)10.0,(ONSET_THRESH/10.0)))){    start_speech_d = i_d /8000.0;d246 1a246 1d250 3a252 4  if ((HCNTR_d == (int)0) && (Lu_d/Ly_d) < SUPPR_d)     {      u_suppr = pow(10.0,2*(ONSET_THRESH/10.0))*ref;    }@

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉经典版下载| 欧美亚洲自拍偷拍| 国产真实精品久久二三区| 免费观看91视频大全| 久久精品久久精品| 久久9热精品视频| 国产一区二三区好的| 精品亚洲成a人在线观看| 久久国产精品72免费观看| 激情综合五月天| 国产一区二区三区四| 成人综合日日夜夜| 不卡的电影网站| 欧洲精品中文字幕| 欧美日本一区二区三区| 欧美一级精品大片| 2023国产精品| 亚洲视频一区二区在线| 国产精品性做久久久久久| 亚洲福利视频一区| 亚洲综合成人在线视频| 国产精品免费观看视频| 欧美大度的电影原声| 欧美日韩一二三| 91片在线免费观看| 粗大黑人巨茎大战欧美成人| 激情图片小说一区| 韩日欧美一区二区三区| 在线不卡免费欧美| 欧美肥胖老妇做爰| 日韩欧美区一区二| 怡红院av一区二区三区| 午夜精品福利视频网站| 亚洲午夜在线观看视频在线| 国产日本亚洲高清| 91精品国产综合久久小美女| 欧美日韩一卡二卡三卡| 欧美日韩在线播放三区四区| 欧美一区二视频| 精品区一区二区| 午夜久久福利影院| 中文字幕在线不卡一区二区三区| 国产精品免费视频网站| 欧美精品一区二区三区蜜桃 | 欧美喷潮久久久xxxxx| 亚洲国产视频直播| 久久午夜羞羞影院免费观看| 一本一道久久a久久精品综合蜜臀| 国产精品毛片高清在线完整版| 国产三区在线成人av| 国产精品日产欧美久久久久| 亚洲精品一卡二卡| 日本成人在线网站| 一区二区三区在线观看欧美| 看片的网站亚洲| 色婷婷久久一区二区三区麻豆| 成人激情午夜影院| 亚洲青青青在线视频| 欧美日韩三级视频| 欧洲精品一区二区三区在线观看| 欧美大片一区二区| 一区二区三区四区五区视频在线观看 | 91尤物视频在线观看| 日韩久久久久久| 亚洲一区二区中文在线| 国产成人av影院| 7777精品伊人久久久大香线蕉最新版 | 欧美猛男超大videosgay| 久久久91精品国产一区二区精品| 午夜成人在线视频| 91在线观看高清| 久久久三级国产网站| 亚洲国产视频一区| 91视视频在线观看入口直接观看www | 不卡电影一区二区三区| 日韩精品在线一区二区| 亚洲国产成人91porn| 成人av资源网站| 26uuu久久综合| 免播放器亚洲一区| 精品视频色一区| 日韩美女视频19| 粉嫩绯色av一区二区在线观看| 欧美一级夜夜爽| 亚洲高清不卡在线观看| 色综合久久久久综合体| 中文字幕人成不卡一区| 国产成人在线网站| 精品乱人伦一区二区三区| 亚洲成人资源网| 色老头久久综合| 中文字幕综合网| 91亚洲男人天堂| 亚洲特黄一级片| av一区二区三区在线| 欧美激情综合五月色丁香| 韩日欧美一区二区三区| 久久影院电视剧免费观看| 蜜臂av日日欢夜夜爽一区| 欧美疯狂性受xxxxx喷水图片| 一级精品视频在线观看宜春院| 91丨porny丨户外露出| 亚洲天堂中文字幕| 色一区在线观看| 亚洲国产综合91精品麻豆| 欧美最猛黑人xxxxx猛交| 一个色妞综合视频在线观看| 欧洲日韩一区二区三区| 亚洲国产毛片aaaaa无费看| 在线电影国产精品| 日本亚洲三级在线| 精品久久久影院| 国产成人无遮挡在线视频| 欧美激情综合五月色丁香| 99久久精品免费精品国产| 日韩美女久久久| 欧美性猛交xxxxxxxx| 午夜久久久久久久久久一区二区| 91麻豆精品国产91久久久 | 色综合天天综合网国产成人综合天 | 制服.丝袜.亚洲.另类.中文| 视频在线在亚洲| 精品久久人人做人人爱| 成人一区二区三区视频在线观看| 中文字幕欧美激情| 色婷婷久久久综合中文字幕 | 波多野结衣一区二区三区| 综合色中文字幕| 欧美午夜精品一区二区蜜桃 | 69堂精品视频| 久久精品国产一区二区三| 国产欧美一区二区精品性| 91精品国产手机| 国产乱一区二区| 亚洲天堂久久久久久久| 欧美影院一区二区| 久久精品国产一区二区三区免费看 | 欧美一级淫片007| 国产高清久久久久| 一区二区不卡在线视频 午夜欧美不卡在| 精品视频全国免费看| 韩国毛片一区二区三区| 亚洲欧洲成人精品av97| 91精品国产欧美一区二区18| 国产成人超碰人人澡人人澡| 亚洲图片一区二区| 久久亚洲一区二区三区明星换脸| av高清不卡在线| 日本欧美一区二区三区| 中文字幕+乱码+中文字幕一区| 欧美日韩在线直播| 国产成人精品三级| 手机精品视频在线观看| 最好看的中文字幕久久| 日韩一区二区免费高清| 99久久99久久综合| 久久成人羞羞网站| 亚洲线精品一区二区三区| 国产亚洲欧美中文| 欧美久久久影院| 成人aa视频在线观看| 久久激五月天综合精品| 一区二区三区在线免费视频| 国产亚洲欧美日韩在线一区| 欧美三级资源在线| 成人av集中营| 久99久精品视频免费观看| 亚洲一二三区视频在线观看| 欧美高清一级片在线观看| 日韩一区和二区| 欧美伊人久久久久久久久影院| 国产成人av电影免费在线观看| 日韩成人一级片| 亚洲综合偷拍欧美一区色| 国产精品三级电影| 亚洲精品在线观看网站| 这里只有精品99re| 欧美亚洲一区二区在线观看| 97久久超碰国产精品电影| 国产精品亚洲第一| 国产中文一区二区三区| 日本在线不卡一区| 亚洲妇女屁股眼交7| 亚洲欧美另类图片小说| 欧美国产乱子伦| 久久伊人中文字幕| 日韩精品一区二区三区四区| 欧美一区二区三区人| 国产伦精品一区二区三区视频青涩| 久热成人在线视频| 亚洲成a人片在线不卡一二三区| 国产精品久久久久一区二区三区| 精品国产伦一区二区三区观看体验| 欧美日韩国产美| 欧美在线free| 91久久精品日日躁夜夜躁欧美| 99久久免费国产| 不卡在线观看av| 96av麻豆蜜桃一区二区| 9久草视频在线视频精品|