上篇(webRTC中语音降噪模块ANS细节详解(一))讲了维纳滤波的基本原理。本篇先给出webRTC中ANS的基本处理过程,然后讲其中两步(即时域转频域和频域转时域)中的一些处理细节。
ANS的基本处理过程如下图1:

图1
从图1可以看出,处理过程主要分6步,具体如下:
1) 把输入的带噪信号从时域转到频域,主要包括分帧、加窗和短时傅里叶变换(STFT)等
2) 做初始噪声估计,基于估计出的噪声算先验信噪比和后验信噪比
3) 计算分类特征,这些特征包括似然比检验(LRT)、频谱平坦度和频谱差异。根据这些特征确定语音/噪声概率,从而判定当前信号是语音还是噪声。
4) 根据算出来的语音/噪声概率去更新噪声估计
5) 基于维纳滤波去噪
6) 把去噪后的信号从频域转换回时域,主要包括短时傅里叶逆变换(ISTFT)、加窗和重叠相加等。
我用于理解和调试的版本是以前的C版本,里面又分为浮点和定点两种实现方式。对于算法理解来说,最好看浮点实现的版本,因为它能和算

最低0.47元/天 解锁文章
3209

被折叠的 条评论
为什么被折叠?



