精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。锐英源软件对经典开源项目有大量翻译,翻译内容技术层次较高,对初学者有深究意义。有幸浏览到的朋友请关注头条号,可以获取最新更新。
Speex是一种专为语音设计的音频压缩格式。它非常适合 Internet 应用程序,并提供大多数其他编解码器中不存在的有用功能。SpeexDSP是附加的音频DSP库,是音频降噪库,也有音频取消回声功能。要熟悉Speex,在Linux下试着make install,生成库后,和自己写的main函数结合,网上有一定的例子,主要由初始化、使用和销毁过程组成。
通过网上公开的speexdsp的C#封装,可以进行降噪开发,但是发现初始化失败,用depends发现作者编译的是Debug版本的库,需要重新编译。
depends可以看到exe或dll依赖的dll情况,如果没有此软件请联系我。
用VS2015重新编译时,提示错误:
You now need to define either FIXED_POINT or FLOATING_POINT
单独定义FIXED_POINT不能解决问题,Debug版本配置里有HAVE_CONFIG_H,把编译选项HAVE_CONFIG_H加到Release模式里不报错。
把依赖的DLL文件:vcruntime140d.dll和ucrtbased.dll加到Exe目录下,C#程序正常初始化,可以看到一些降噪效果。
处理降噪的speex_preprocess_run函数里有音频术语对应的一些子函数,还有大量的宏,结合了一些循环,如果不懂算法,不太好理解。降噪并不是简单的任务。主要任务在preprocess_analysis函数里完成。