主动降噪,通话降噪及AI降噪之辨
近日,三星发布的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降噪有了初步的了解。
主动降噪,通话降噪及AI降噪之辨的更多相关文章
- 主动降噪(Active Noise Control)
智能耳机 人机交互 智能声学终端 智能耳机 智能音箱 智能听力器 喇叭单体 动圈喇叭 新材料 DLC 石墨烯 陶瓷单位 吸音材料 智能芯片 阵列式麦克风 声纹传感器 演算法 降噪算法 智能听力保护 A ...
- 一种高灵敏度自带DSP降噪算法的音频采集解决方案
背景调研 随着AI渗透到各行各业,人们对语音的需求也越来越大,最近一两年,各种AI音频设备如雨后春笋般冒出.各种智能AI设备的推出,意味者市场对低成本的音频采集设备越来越多.针对这种情况,我们开发 ...
- 高灵敏度自带DSP降噪算法的audio codec解决方案
背景调研 随着AI渗透到各行各业,人们对语音的需求也越来越大,最近一两年,各种AI音频设备如雨后春笋般冒出.各种智能AI设备的推出,意味者市场对低成本的音频采集设备越来越多.针对这种情况,我们开发 ...
- 集 降噪 美颜 虚化 增强 为一体的极速图像润色算法 附Demo程序
在2015年8月份的时候,决心学习图像算法. 几乎把当时市面上的图像算法相关书籍都看了一遍, 资金有限,采取淘宝买二手书,长期驻留深圳图书馆的做法, 进度总是很慢,学习算法不得其法. 虽然把手上所有书 ...
- Java基于opencv实现图像数字识别(四)—图像降噪
Java基于opencv实现图像数字识别(四)-图像降噪 我们每一步的工作都是基于前一步的,我们先把我们前面的几个函数封装成一个工具类,以后我们所有的函数都基于这个工具类 这个工具类呢,就一个成员变量 ...
- 验证码识别 图像降噪 Python (一)
原始图片: 降噪后的图片 实现代码: # coding:utf-8 import sys, os from PIL import Image, ImageDraw # 二值数组 t2val = {} ...
- 一种简单高效的音频降噪算法示例(附完整C代码)
近期比较忙, 抽空出来5.1开源献礼. 但凡学习音频降噪算法的朋友,肯定看过一个算法. <<语音增强-理论与实践>> 中提及到基于对数的最小均方误差的降噪算法,也就是LogMM ...
- camera数字降噪(DNR)
camera数字降噪(DNR) 闭路电视摄像机 无论多么出色和弱光,在黑暗中拍摄视频监控录像时都会不可避免地产生一些噪音.噪声是任何电子通信中不可避免的部分,无论是视频还是音频.本质上是静态的–视频信 ...
- 2018,从AI看安卓生态的变革
AI的发展与影响 与传统技术不同的是,AI技术算法清晰,优化目标明确,基础技术成熟,使得一众中小创企也看到了市场的机会.2017年中国企业动作频频,在自动驾驶,智能安防,智慧城市等领域都取得了不俗的成 ...
随机推荐
- 【Linux】Linux进程间通信的几种方式
一.进程间通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间 共享数据:多个进程要操作共享数据,一个进程对共享数据 信息传递:一个进程需要向另一个进程发 ...
- 【Linux】history用法
通过history命令可以查看我们在系统中输入过的命令 history命令的一些常用参数 -c 清空内存中命令历史 -d # 删除指定的历史命令,比如 history -d 100 ,就是删除第1 ...
- Puzzle (II) UVA - 519
题目链接: https://vjudge.net/problem/UVA-519 思路: 剪枝+回溯 这个题巧妙的是他按照表格的位置开始搜索,也就是说表格是定的,他不断用已有的图片从(0,0)开始拼到 ...
- Linux设置开机自动挂载镜像文件
1.将文件上传到服务器上(本例上传到/Data/software下) 2.挂载 mount -o loop /Data/software/rhel-server-7.6-x86_64-dvd.iso ...
- 命令模式与go-redis command设计
目录 一.什么是命令(Command)模式 二.go-redis command相关代码 三.总结 一.什么是命令(Command)模式 命令模式是行为型设计模式的一种,其目的是将一个请求封装为一个对 ...
- 集成多种协议、用于 USBC 端口的快充协议芯片IP2723
1. 特性 快充规格 集成 QC4/QC4+输出快充协议 - 兼容 QC2.0/QC3.0 - 支持 Class B 电压等级 集成 FCP 输出快充协议 集成 SCP 输出快充协议 集成 ...
- linux静态库
库文件可以理解为别人写好的现成的代码,但是看不见源码,只提供程序入口.库又分为动态库和静态库,静态库是在编译的时候将库编译进可执行程序中,运行时不再依赖库文件,而动态库是在运行时加载,运行时需要依赖库 ...
- linux设备文件
一.前言 在调用了alloc_chrdev_region函数或register_chrdev_region函数之后可以在/proc/devices中看到该设备的主设备号,比如我注册的hello模块的主 ...
- 转 7 jmeter之参数化
7 jmeter之参数化 badboy里参数化(前面4 jmeter badboy脚本开发技术详解已讲过) jmeter里参数化-1 用户参数 1.打开badboy工具,点击红色按钮开始录制,在地 ...
- javascript通过递归改子节点数据-用于层级深度未知的树形结构
最近在做这么个需求:树形结构,层级深度未知,一旦某个节点的状态是置灰的话,其所有子节点都要置灰. 方案一(数据库有值):如果数据库里置灰节点的所有子节点,值也都是"置灰",那后台取 ...