回声消除AEC(Acoustic Echo Cancellation)概括介绍及基本原理分析
回声消除的基本概念
回音消除(Acoustic Echo Cancelling)是透过音波干扰方式消除麦克风与喇叭因空气产生回受路径(feedback path)而产生的杂音。通俗一点来说,回声消除就是为了消除机器自身发出的声音,不影响外界传递过去的声音。 如在双工通话的场景中,来自远端的经过扬声器放出来的声音被消掉,否则经过麦克风采集和近端说话人信号混在一起被传递到远端,则会出现远端的人听到自己说的话,这种回声对于一些通信设备来说体验是致命的差。
回声消除的基本流程
回声消除常用方法如下:使用不同的自适应滤波算法调整滤波器的权值向量,估计一个近似的回声路径来逼近真实回声路径,从而得到估计的回声信号,并在纯净语音和回声的混合信号中除去此信号来实现回声的消除。
详细的来说,回声消除的过程一般分为以下几个步骤:
- 远端信号被传递到系统。
- 转载远端信号的扬声器在房间里。
- 也在房间里的麦克风拾取产生的直接路径的声音,和随之而来的混响声音作为近端信号。
- 将远端信号进行滤波并延迟到类似的(resemble)近端信号。
- 将过滤的远端信号是从近端信号中减去。
- 所产生的信号指不包括任何直接或回荡的声音通过扬声器在房间里的声音。
回声消除常用的算法
A 最小均方算法 LMS
自适应AEC问题中应用最广泛的就是自适应滤波算法,其中最早是由Widrow和Hoff在1959年所提出的最小均方(Least Mean Square,LMS)算法
LMS算法基于维纳滤波理论,采用最速下降算法,通过最小化误差信号的能量来更新自适应滤波器权值系数。
- 优点:抑制旁瓣效应
- 缺点:LMS算法计算复杂度不高,但是其收敛速率较慢,并且随着滤波器阶数(步长参数)升高,系统的稳定性下降,要保证采用最小的步长参数,保证最小的失调,可能无法满足收敛标准
B 归一化最小均方算法 NLMS
归一化最小均方(Normalized Least Mean Squares,==NLMS)==算法是改进的LMS算法,根据原LMS算法中误差信号与远端输入信号的乘积,对远端输入信号的平方欧式范数进行归一化处理,将固定步长因子的LMS算法变为根据输入信号时变的变步长NLMS算法,
优点:改善了LMS算法收敛速度慢的缺点。计算简单、收敛速度较快的特点
缺点:收敛速度慢
C 稀疏类自适应算法——PNLMS
根据回声路径的稀疏性,Duttweiler引入了比例自适应的思想,提出了比例归一化最小均方算法 PNLMS,按比例分配滤波器的权值向量大小,该算法对回声消除的发展具有非常重要的意义。
该算法采用与滤波器抽头稀疏成正比的可变步长参数来调整算法收敛速度,利用其抽头稀疏的比例值来判断当前权重稀疏所属的活跃状态,根据状态的不同,所分配的步长大小也有所差异,活跃抽头系数分配较大的步长参数,这样可以加速其收敛,而不活跃的抽头系数则相反,通过分配其较小的步长参数来提高算法的稳态误差。每个滤波器抽头被分别赋予了不同估计值,算法的稳态收敛性得到了明显改善。然而,PNLMS 有一个明显的缺点,即比例步长参数的选择引入了定值,这会导致估计误差累积,最后使算法在后期的收敛速度减慢下来。
优点:使算法对于稀疏的回声路径,在初始阶段拥有快速的收敛速率,与此同时降低了稳态误差,
缺点:
- 由于 PNLMS 算法过分强调大系数的收敛,而当系数变小后,P 步长也随之变小,但随着算法的运行,则可能出现算法后期收敛速度慢、不能及时收敛的情况
- 相比于NLMS算法增加了算法的复杂度
- 另外在回声路径非稀疏情况下,收敛速度会变得比NLMS算法更慢
D 子带自适应滤波器(SAF)
在声学回声消除应用中,远端输入语音信号的相关性较高,然而,传统的方法是基于“信号的无关性”假设的,传统的全带LMS 和NLMS 等计算复杂度低的随机梯度算法收敛速度明显下降。
远端语音信号相关性有两层含义:
时域上:它表征语音信号相关矩阵特征值的扩散度
频域上:它表征远端语音信号的频谱动态范围
一般来说,语音信号相比白色信号,前者明显有更大的频谱动态范围,即更大的信号相关性。因此,可以通过降低输入信号的相关性来加快算法收敛速度,但是行之有效的一种方法是将自适应滤波器和滤波器组理论相结合,提出了子带自适应滤波(subband adaptive filter,SAF)算法,子带结构是基于频域对信号进行的一种处理(节省计算量、提高收敛速度)。 在传统的 SAF中,子带自适应算法都是以最小化子带误差信号为目标的,这样基于局部目标函数误差的最小化不一定是全局误差能量最小化。而分析滤波器组在子带切割和综合滤波器组重建全带信号时皆会引入时延,在AEC 应用中,这样的时延会使包含近端语音的全带误差信号传到远端,为了消除时延的影响,无延时子带闭环结构系统以全局误差能量最小化为约束条件来调整滤波器系数。最后,确保自适应滤波算法能够收敛到最佳的滤波器系数。
优点:改善了全带自适应滤波算法在相关信号条件下的收敛速率
缺点:其稳态误差由于输出时存在的混叠分量而显著升高,当采用正交镜像滤波器组时,虽然可以通过子带系统将混叠部分相互抵消掉,但在现实中却无法实现。
总结
基于维纳滤波发展起来的 LMS 算法因其结构简单,运算量小,稳定性好等特性,依然是目前得到广泛应用的一种自适应滤波算法。
有人提供了一种折中的方案:基于多带结构的改进型自适应滤波切换算法NLMS-NSAF
一 首先远端语音信号利用包络法判别有无语音段,
二 然后将信号状态输出到自适应多带结构算法模块当中。
三 若语音区输入信号的短时能量较大,则使用收敛速度快的自适应滤波算法(NLMS);
四 若语音区输入信号的短时能量较小,需考虑计算量低的算法(NSAF),
五 语音在无语音区时算法迭代停止。
对输入语音信号能量高低的判定是通过和阈值比较得到的。在充分考虑语音特性的情况下,切换算法实现了算法在收敛速度的优势,同时完成了同算法复杂度的优化选择。最后达到了提高滤波算法性能、降低运算量的目的。这是一个实际的解决方案,不过实际的效果还要等待后续验证,敬请关注,后续我会对这块做一个深挖。
参考文档:
1 https://www.debugger.wiki/article/html/1572616852593650
2 https://www.cnblogs.com/LXP-Never/p/11773190.html
回声消除AEC(Acoustic Echo Cancellation)概括介绍及基本原理分析的更多相关文章
- 声学回声消除(Acoustic Echo Cancellation)
回声就是声音信号经过一系列反射之后,又听到了自己讲话的声音,这就是回声.一些回声是必要的,比如剧院里的音乐回声以及延迟时间较短的房间回声:而大多数回声会造成负面影响,比如在有线或者无线通信时重复听到自 ...
- 回声消除(AEC)原理
一.前言 因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘.高端和难以理解的技术 ...
- 论文翻译:2018_Deep Learning for Acoustic Echo Cancellation in Noisy and Double-Talk Scenarios
论文地址:深度学习用于噪音和双语场景下的回声消除 博客地址:https://www.cnblogs.com/LXP-Never/p/14210359.html 摘要 传统的声学回声消除(AEC)通过使 ...
- 论文翻译:2020_Generative Adversarial Network based Acoustic Echo Cancellation
论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-5.pdf 基于GAN的回声消除 摘要 生成对抗网络(GANs)已成为语音增强( ...
- 论文翻译:2020_A Robust and Cascaded Acoustic Echo Cancellation Based on Deep Learning
论文地址:https://indico2.conference4me.psnc.pl/event/35/contributions/3364/attachments/777/815/Thu-1-10- ...
- 论文翻译:2021_ICASSP 2021 ACOUSTIC ECHO CANCELLATION CHALLENGE: INTEGRATED ADAPTIVE ECHO CANCELLATION WITH TIME ALIGNMENT AND DEEP LEARNING-BASED RESIDUAL ECHO PLUS NOISE SUPPRESSION
论文地址:https://ieeexplore.ieee.org/abstract/document/9414462 ICASSP 2021声学回声消除挑战:结合时间对准的自适应回声消除和基于深度学习 ...
- 论文翻译:2021_AEC IN A NETSHELL: ON TARGET AND TOPOLOGY CHOICES FOR FCRN ACOUSTIC ECHO CANCELLATION
论文地址:https://ieeexploreieee.53yu.com/abstract/document/9414715 Netshell 中的 AEC:关于 FCRN 声学回声消除的目标和拓扑选 ...
- 论文翻译:2021_Joint Online Multichannel Acoustic Echo Cancellation, Speech Dereverberation and Source Separation
论文地址:https://arxiv.53yu.com/abs/2104.04325 联合在线多通道声学回声消除.语音去混响和声源分离 摘要: 本文提出了一种联合声源分离算法,可同时减少声学回声.混响 ...
- 论文翻译:2020_Attention Wave-U-Net for Acoustic Echo Cancellation
论文地址:http://www.interspeech2020.org/uploadfile/pdf/Thu-1-10-10.pdf Attention Wave-U-Net 的回声消除 摘要 提出了 ...
- 论文翻译:2021_Semi-Blind Source Separation for Nonlinear Acoustic Echo Cancellation
论文地址:https://ieeexplore.ieee.org/abstract/document/9357975/ 基于半盲源分离的非线性回声消除 摘要: 当使用非线性自适应滤波器时,数值模型与实 ...
随机推荐
- 关于Windows11的优化内容 - 进阶者系列 - 学习者系列文章
这几天无事,想起上次刚重装的Windows 11操作系统,对于系统优化的内容想记录一下,以前没写过相关的博文,这次就做个记录吧.对于Windows 11,已经出来几年了,相关的设置啥的也有,就是优化方 ...
- AOKO奥科美2.5英寸外置硬盘盒开箱
上次在坛子里发布了一个帖子,然后根据坛友们的反馈,换购了另一个SATA固态硬盘.另一个是配套的硬盘盒,当时在某宝上搜了一圈,最终购买了这款硬盘盒,主要是因为它的外观,旁边有散热片.这款硬盘盒在某宝上不 ...
- pandas教程02: 查找表中数据
在上篇教程中,我们介绍了pandas的安装.数据的导入与导出以及删除行列的操作.这次让我们一起研究下在pandas中如何根据指定的条件查找表中数据. 1. 数据准备 这次,我们使用一张学生成绩 ...
- 部署19c ADG过程中的问题处理
回忆起来也是有些年没亲自动手搭建ADG了,今天正好有个机会重温,客户环境是19.16,恍惚记得上一次搭ADG还是在11.2.0.4的时代,时光荏苒啊. 正好看下19c的ADG和11g的ADG在部署方面 ...
- c语言实现内存池
概要 所谓内存池,顾名思义和线程池的设计原理是一样的,为了减少频繁申请释放内存而带来的资源消耗,减少释放内存后产生的内存碎片. 设计理念 为了方便管理内存池的设计通常是划分出一定数量的内存块,这些内存 ...
- 24.3 向量化异常VEH--《Windows核心编程》
Windows 提供了向量化异常处理(vectored excepation handing,VEH)机制.程序可以注册一个函数,每当异常发送或者一个未处理异常脱离标准SEH的控制时,这个函数就会被调 ...
- Elasticsearch, Kibana安装
Centos7 安装Elasticsearch 安装 因为ES启动不能用root账号,手工安装配置较繁琐,故直接用rpm进行安装.根据官网的6.8安装提示 rpm --import https://a ...
- 解决iso方式安装win10找不到固态硬盘!!!
问题说明 朋友的一台联想小新笔记本需要安装win10,我给弄了个iso启动U盘,但是在选择安装盘时找不到笔记本的固态硬盘... 问题原因 联想的锅! 以联想为例,出厂系统的BIOS内,SATA Con ...
- Java并发编程实例--6.线程的join方法
有时我们需要等到某个线程执行完毕.例如,我可能有一个线程来初始化资源完毕然后其他线程才能开始执行. 谓词,我们可以使用Thread类的join()方法. 本例中,我们将学习使用这个方法. DataSo ...
- 《系列二》-- 3、FactoryBean 的使用
目录 FactoryBean 解决的问题 FactoryBean 接口初识 改造结果 最后的补充 回顾下 FactoryBean 的应用 factory-method 和 factory-bean 的 ...