java webrtc ns降噪_提纲挈领webrtc之NS(noise suppression)模块

本文介绍了WebRTC的噪声抑制(NS)模块,它能有效区分并消除非人声噪声。通过建立噪声模型和计算信噪比,利用维纳滤波器进行降噪,并提供不同降噪模式。建议在系统资源充足时选择第三种噪声估计模型,以达到最佳效果。WebRtcNs_Process是处理关键函数,用于处理10ms的音频帧。
摘要由CSDN通过智能技术生成

Noise suppression,就是大家说的降噪。这种降噪是把人声和非人声区分开来,把非人声当成噪声。

一段包含人声和噪声的音频经过该模块处理,从理论上讲,只剩下人声了。

webrtc的NS在业内还是赫赫有名的,通过实际对比测试,我们发现webrtc的降噪的确是性能和稳定性

都要高于同类开源算法。

webrtc的ns原理是这样的:把启动前50帧的数据拿来构建噪声模型,把启动前200帧的信号强度用来计

算归一化的频谱差值计算。根据这两个模型使用概率目的函数来计算出每帧的信噪比并区分出噪声和声音,

然后根据计算出的信噪比在频域使用维纳滤波器对噪声信号进行噪声消除,最后在根据降噪前后的能量比

和信号噪声似然比对降噪后的数据进行修复和调整后输出。

webrtc的NS使用分析:webrtc的降噪支持三种采样率,8k,16k和32k,其它的采样率的降噪可以通过

瞎采样来完成。降噪模式有四种:分别是,0,1,2,3 四种模式的降噪量依次增加,笔者亲自测过,一般是2比较

好,对声音损失小,降噪效果又不错。还有个比较重要的参数就是噪声估计模型宏定义,如下所示,推荐在

系统计算能力够的情况下使用第三种,效果最好。

#define PROCESS_FLOW_0 // Use the traditional method.

#define PROCESS_FLOW_1 // Use traditional with DD estimate of prior SNR.

#define PROCESS_FLOW_2 // Use the new method

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值