近日,三星发布的Buds Pro 耳机中,宣传有以下功能。其中涉及到噪声的,有主动降噪,通话降噪及智能降噪,很多人对他们的具体用途容易混淆,今天我们来辨析一下。
主动降噪和通话降噪完全不是一个概念,无论从方法,目的,技术手段,应用场景都不一样。
1. 主动降噪ANC(Active Noise Cancellation),简单来说,耳机中的主动降噪是为了减少佩戴者自己听到的环境噪声,它是通过佩戴者耳机的扬声器发出与环境噪声相反相的声波,在佩戴者耳朵内部这个小小的声场环境里抵消了通过耳机物理结构传播进来的环境噪声,通过一下三张图就可以明白其基本原理:
为了实现主动降噪,其技术手段有Feedforward ANC (前馈主动降噪), Feedback ANC (反馈主动降噪) 以及 Hybrid ANC (混合主动降噪,其实就是前馈加上反馈)。
当前常见的算法: Filtered-X Least-Mean-Square (FXLMS) 滤波器,所以这么看来,ANC 实际和互联网常说的音频三剑客 3A 中的AEC还是近亲呢。
ANC的实现方法解释起来比较繁琐,这里推荐几篇帖子,欢迎有兴趣的同学深入研究:
Active Noise Control: A Tutorial Review: http://www2.coe.pku.edu.cn/tpic/2010913102917710.pdf
关于主动降噪耳机,你想知道的一切: https://zhuanlan.zhihu.com/p/133252284
这里给出一个例子供大家学习: https://github.com/875441459/Basic-demonstraion-of-Fxlms-Algo
2. 通话降噪是互联网常说的音频三剑客3A中的一员,严格来说3A是指:
AEC(Acoustic Echo Canceller),ANS(Ambient Noise Suppression), AGC(Automatic Gain Control)
通话降噪指的是 ANS(Ambient Noise Suppression),也就是常说的噪声抑制,也有叫做Automatic Noise Suppression,狭义上的语音增强和语音分离也是指噪声抑制,
广义的语音增强和语音分离就包含各自更广泛地范围了,有机会再详述。有人把ANC列为3A之一,很显然是混淆了二者的概念。
通话降噪,简单来说是要从已经混有噪声的语音信号中,把噪声给抑制掉,完全通过软件从信号处理层面实现的,不像ANC那样需要在声场层面解决问题。
通话降噪是为了降低耳机佩戴者在通话时传输给对方的语音中的噪声,其目的是把带噪语音变为清晰语音,当然也不一定非得用于通话,只要有这个需求的场景都可以用到。
噪声抑制作为研究了几十年的技术,有很多的方法,不过目前因为谷歌开源的实时通信引擎WebRTC中的噪声抑制效果很好,很多公司都借鉴了WebRTC的噪声抑制方案。
对于通话链路,不仅仅有一个通话降噪,其实它包含有如下的很多模块:
这篇文章介绍的比较全面,推荐大家:通话降噪超级简洁——简介 https://zhuanlan.zhihu.com/p/87340866
在github上有多的源码,这里给出一个例子供大家学习:https://github.com/cpuimage/WebRTC_NS
3. AI降噪
所谓的AI降噪,也就是智能降噪,其实是指的具体实现方法,不管是主动降噪,还是通话降噪,只要使用了深度学习技术,就可以称为AI降噪。
目前在通话降噪中,深度学习使用的比较多,近几年各大语音学术会议上的噪声抑制,基本是深度学习论文一统天下了,反而信号处理方案论文不多见了。
这里是业界交口称赞的一套开源的深度学习噪声抑制的方案:https://github.com/xiph/rnnoise
而目前在主动降噪领域,引入深度学习的确实不多,笔者猜测由于主动降噪本身就是自适应滤波器,带有一定的自我学习的特点了,所以引入深度学习的效果可能提升有限。
希望读者读过这篇文章后,对主动降噪,通话降噪及AI降噪有了初步的了解。