Speex降噪代码分析

speex是一套主要针对语音处理的开源代码,它包括语音编解码器,VAD(语音活动检测),AEC(回声消除),NS(语音降噪)等模块。由于免费、无专利保护和开源的特性,又属于产品常用的基本算法,同时包括了浮点和对应的定点实现,Speex声名远扬成为广大音频算法开发者的入门武功。
        网上文档大多是简要介绍或者侧重于对其应用接口的介绍。 打算分两部分详细讲解Speex降噪代码,提供给对该算法感兴趣的读者做参考。考虑文章太长需要更多的写作时间,也不利于读者的碎片化阅读,因此每次文章不会太长。初步计划拆分成两个系列:系列一先讲解代码的实现细节,比如FFT函数的调用方法和数据排列特点,又比如math_approx.h包含的sin/cos/log/sqrt/atan/exp/pow等定点函数实现。系列二讲解算法细节,涉及噪声估计算法MMSE和语音存在概率估计算法,线性频率/Bark频率的互相转换等等。
        工具准备:
1、Speex经过多年的维护,版本较多。本文基于官网的SpeexDSP 1.2rc3,下载地址:https://www.speex.org/downloads/。Speex和SpeexDSP最新版本都是通过Git维护,下载地址:https://git.xiph.org/?p=speexdsp.git;a=summary。
2、编译器选择CodeBlocks或者VS2017 community版本。
3、安装Matlab或者Octave,或者在线运行https://octave-online.net/。

目前已完成代码如下,发布在微信公众号“音频算法与工程实践”。

Speex降噪代码分析_第1张图片

Speex降噪代码分析2——FFT
Speex降噪代码分析3——定点代码spx_cos( )
Speex降噪代码分析4——再谈定点代码spx_cos( )
Speex降噪代码分析5——spx_acos( )代码
Speex降噪代码分析6——spx_acos( )原理    
Speex降噪代码分析7——_spx_cos_pi_2( )代码
Speex降噪代码分析8——spx_cos_norm
Speex降噪代码分析9——spx_atan01
Speex降噪代码分析10——spx_atan

 

你可能感兴趣的:(音频算法开发)