Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103826
  • 博文数量: 80
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-14 09:52
文章分类

全部博文(80)

文章存档

2026年(37)

2025年(6)

2022年(2)

2017年(14)

2016年(16)

我的朋友

分类: LINUX

2026-04-26 07:04:03

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif


#include
#include


#define NN 160


int main()
{
   short in[NN];//此处为输入,如果测试可用input.pcm,如果程序调用则每次160个字节的payload
   int i;
   SpeexPreprocessState *st;
   int count=0;
   float f;


   st = speex_preprocess_state_init(NN, 8000);
//配置denoise
   i=1;
   speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DENOISE, &i);
//配置自动增益控制   
   i=0;
   speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_AGC, &i);
//配置自动增益level   
    i=8000;
   speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_AGC_LEVEL, &i);
//  配置开启或者关闭混响
   i=0;
   speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DEREVERB, &i);
//配置关闭混响衰减参数   
f=.0;
   speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DEREVERB_DECAY, &f);
//配置去混响的level,这六个参数都可在头文件里找到enum定义
   f=.0;
   speex_preprocess_ctl(st, SPEEX_PREPROCESS_SET_DEREVERB_LEVEL, &f);
   while (1)
   {
      int vad;
      fread(in, sizeof(short), NN, stdin);
      if (feof(stdin))
         break;
     //启用配置的参数
      vad = speex_preprocess_run(st, in);
      /*fprintf (stderr, "%d\n", vad);*/
      fwrite(in, sizeof(short), NN, stdout);
      count++;
   }
   speex_preprocess_state_destroy(st);
   return 0;
}

阅读(3) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~