WebRtcNs_ProcessCore 降噪处理核心函数
1、分为高频、低频子带进行处理,采样率为8-16K时,一般只用到低频处理。
2、计算输入带噪语音数据帧的能量值。
3、FFT傅里叶变换
4、计算维纳滤波增益,通过直接判决法计算先验信噪比。
theFilter=snrPrior / (self->overdrive+ snrPrior);
5、对维纳增益值根据用户设置的降噪等级,进行下溢与上溢处理。
6、进行维纳滤波,并将增益后的频域数据(频率降噪)通过IFFT转为时域数据。
7、对降噪等级进行判断,如果等级为0 ,则维纳滤波输出则为最后的降噪结果。否则,继续处理。
8、计算维纳滤波后的帧数据能量,并计算与步骤2中的能量比值, gain = (float)sqrt(energy2/ (energy1 + 1.f));
9、当gain值大于0.5,计算因子1,factor1= 1.f + 1.3f * (gain - B_LIM);并判断gain *factor1是否大于1。如果大于1<