导读:回声消除是音频通话中最为复杂的模块,对于音频通话质量起到至关重要的作用。一直以来,网易云信致力于提供良好的回声消除性能,为用户提供优异的音频通话质量。本篇文章中网易智企音视频开发专家将和大家共同回顾回声消除的历史,分析回声消除的现状,并展望回声消除进一步发展的方向

一、历史:

回声是一种物理和生理共同作用产生的声学现象。原始声被反射后反射声和原始声的延时超过100ms时,人耳可以听到分离的两个声音,一般在空旷的山谷这一类地方容易听到回声。

通话中听到的回声一般有两种,线路回声和声学回声。线路回声是因为在长途电话线网络中,存在二四线转换的问题。本地电话—般是用二线电路连接到中心局的,而长途线路的话,需要用四线电路,这两者之间需要用混合变换器进行连接。混合变换器的引入使得传输的信号在混合变换器阻抗不匹配的情况下产生电路回声。

而我们现在在数字通话中提到的回声一般是指声学回声,声学回声的原因是扬声器发出的声音被麦克风获取后传回远端,这样一来远端说话者就可以听见自己发出的声音。

声学回声问题在早期电话应用中并不凸显,主要是因为使用低延时的模拟技术并且通讯距离普遍较短。20 世纪中叶以后,由于卫星系统发展的需要提出了回声消除问题,曾经采取的解决一种方法是使用切换的方式来隔断回音信号,这种方法虽然能够有效地隔断回声,但是却无法平常一样自然地交谈。

随着通话回声日益受到重视,人们采取了各种各样的措施来对回声进行抑制或消除。 上个世纪六十年代以前,由于客观条件和技术的限制,人们采用一种叫回声抑制器的方法来实现回声消除。回声抑制就是对回声进行一定程度衰减以提高通信质量,但是回声抑制器只对很小的时间延迟才有良好的效果。随着卫星通信和IP 电话的发展,出现了传输时延超过100--300ms的电路,对于这么大的时延,回声抑制器的工作效果很差,于是人们开始研究新的回声消除技术,基于自适应滤波器的回声消除技术逐渐成为主流方向。从20世纪80年代以来,随着回声消除技术从简单的回声抑制器到自适应回声消除器的发展,国际电联ITU先后制 定了消除线路回声的G165(Echo Canceller),消除音频终端回声的G167(Acoustic Echo Canceller)及消除数字网络回波的G 168(Digital Network Echo Canceller)等 回声消除器相关标准。

现状:

理论上来说基于自适应滤波器架构并不是回声消除的唯一选择,但是由于技术的限制和历史沿袭使得目前的回声消除基本都是以自适应滤波器架构为基础。

从回声消除的工作原理来看,它是一个典型的系统辨识应用,辨识回声路径,利用参考信号和回声路径的卷积产生回声的估计,然后从混合输入中去除回声估计。使用自适应滤波器进行系统辨识是一个很自然的选择。经过长时间的技术发展,研究人员在自适应滤波器的性能研究上取得大量成绩,对于回声消除常用的自适应算法特性了解的比较深入。

一些常用自适应滤波器算法特性如下:

1.最小均方(LMS,least-mean-square)算法,是随机梯度算法族 中的一员。该算法在随机输入维纳滤波器递推计算中使用确定性梯度,其基本原理是使误差信号的均方误差最小,它的核心思想是用平方误差代替均方误差。LMS算法简单,运算量小,很容易在通用的数字信号处理器上实现,但是LMS算法的收敛速度依赖于输入信号矢量的自相关均值的特征值扩散度,扩散度很大时,收敛速度将很慢。对于相关性较强的语音信号,LMS算法的收敛速度会很慢。

2.为了克服经典的LMS算法收敛慢和对噪声较敏感的缺点,人们将滤波器系数矢量用输入信号的功率进行归一化,得到归一化最小均方(NLMS)算法。归—化技术减少了收敛速度对输入信号功率的依赖性,其代价是计算量增加。但阶数增大时,增加的计算量相对较少。简言之,在计算复杂性方面,NLMS算法的计算效率与LMS算法相当。同时,当输入信号为语音时,NLMS算法比LMS算法的收敛速度快,且稳定性好。因此,NLMS算法比LMS算法更适合于回声消除器的应用。

3.PNLMS算法及其改进算法是对NLMS算法步长控制的修改。它的收敛速度较快,对稀疏回声路径很有效。IPNLMS算法是对PNLMS算法的改进,对回声路径 稀疏性的要求不高。

4.AP算法可以看成是NLMS算法的扩展。由于使用了更多的输入向量,收敛速率得到比NLMS算法更快的收敛速度。AP算法的失调与输入矢量数(即AP算法的阶数)无关。随着阶数的增加,收敛速度加快,但是收敛速度加快的幅度在减小。增加阶数来提高收敛速度是以增加算法的计算复杂度为代价的。AP算法的计算复杂度比NLMS高很多。AP算法的收敛速度和计算量介于 NLMS算法和RLS算法之间。

5.和随机梯度算法不同,RLS算法属于最小二乘算法。RLS算法的收敛速度比 LMS算法快—个数量级。随着迭代次数趋于无限,RLS算法的额外均方误差收敛于零。但是,因为用了矩阵求逆计算,RLS算法的运算量大,对于冲激响应超过百毫秒的回声信号的消除问题来说,其运算量大难以实现。

目前的回声消除模块大部分都是基于以上某一类算法或者其变种,在较为接近理想情况下,现有自适应滤波算法均能得到较为满意的回声消除效果,然而这只是实际通话中多数时间下的一个理想状态,实际通话情况复杂的多。本端噪声干扰,信号路径中的非线性变换,双方同时讲话,非实时操作系统带来的数据延时抖动等,都是一个通用回声消除模块需要解决的问题。

例如当存在明显的近端声音时,基于现有各种自适应滤波算法的回声消除器的性能将发生恶化,甚至不能保证自适应滤波算法的收敛。这就是回声消除在实际应用中的必须解决的关键问题,通常称为双端发声(Double-talk)问题。当前针对这一情况,最常用的方法就是加入双端通话检测器(Double Talk Detector,DTD),当双方同时讲话时让自适应滤波器锁定或者慢变来防止自适应过程发散。

如何在实时通话情况下对这些附加问题上给出满意的逻辑和精细调整对于产品化非常重要,也是目前导致产品性能差异的主要原因。当前商用产品中的回声消除模块多数情况下都能取得满意的效果,然而在某些特殊情况下都会有处理不善的地方,对更高通话品质的要求依然是研究更好的回声消除模块的动力。

未来:

由于通话回声问题的复杂性,对回声消除模块效果提升的需求始终存在。当前方案的固有问题使得前述一些关键问题很难取得突破性进展。由于近年来设备算力的提高以及技术的发展,一些新的方案也被提出。以Volterra滤波器为基础的非线性滤波器解决方案,基于ICA和深度学习的回声消除算法研究等也开始出现,基于线性自适应滤波器架构的回声消除算法面临挑战。然而还没有另外一个架构能像当前的自适应滤波器架构一样被广为使用,短期内回声消除算法依然还会作为一个常见技术话题存在。

网易云信在回声消除逻辑改善和新方案研究上持续推进研究,致力于为用户提供更好的音频通话效果。

关注网易云信,听取最新前沿观察,看最有价值技术干货,学网易最新实践经验。陪你从思考者成长为技术专家。

echo回声不能用了_回声消除的昨天、今天和明天相关推荐

  1. 回声消除的昨天、今天和明天

    导读:回声消除是音频通话中最为复杂的模块,对于音频通话质量起到至关重要的作用.一直以来,网易云信致力于提供良好的回声消除性能,为用户提供优异的音频通话质量.本篇文章中网易智企音视频开发专家将和大家共同 ...

  2. echo回声不能用了_已懂得用电子分频器,为何不继续加个效果器让音响效果更好?...

    效果器是一种提供各种声场效果,并对声音信号在时间和频率等多方面多方位进行加工处理以产生特殊音响效果的周边设备,它广泛使用在电台.电视台的节目制作上.然而要充分发挥效果器的作用,使其获得满意的效果,还必 ...

  3. python回声程序echo 一行代码_回声状态网络法echo state network代码(简单)

    [实例简介] esn作者在官网的简单版代码,给英文不好的同学拿过来,免得再去找地方下载 [实例截图] [核心代码] ESN_Toolbox └── ESN_Toolbox ├── analogToUn ...

  4. 回声检测仿真信号matlab,回声信号的产生及消除.doc

    数字信号处理课程设计 回声信号的产生与消除 姓 名 张针海 学 号 专 业 电子信息工程 指导教师 樊玲 年 级 10级电信2班 日 期 2013 .5 . 25 [摘要] 本课程是利用Windows ...

  5. au回声_回声按钮如何将Amazon Alexa技能提升到新水平

    au回声 by Terren Peterson 由Terren Peterson 回声按钮如何将Amazon Alexa技能提升到新水平 (How Echo Buttons take Amazon A ...

  6. @echo off是什么意思_为什么执行自己的程序要在前面加./

    作者:守望,Linux应用开发者,目前在公众号[编程珠玑] 分享Linux/C/C++/数据结构与算法/工具等原创技术文章和学习资源. 前言 在Linux中,我们执行内置命令时,直接输入命令名称即可, ...

  7. 凝思系统如何调节分辨率_如何消除步进电机的噪音和振动?

    点击"TRINAMIC电机驱动控制系统",关注我们 步进电机的噪音来自哪里? 由于步进电机由于结构简单.控制方便.安全性高.成本低.停止时候力矩大.在低速情况下不需要减速机就可以输 ...

  8. 安恒 web类这可不是难题_如何消除您的前5个Web设计难题

    安恒 web类这可不是难题 This sponsored article was created by our content partner, BAW Media. Thank you for su ...

  9. 一键服务端是什么意思_一键消除马赛克和圣光?这类软件能否在未来成为二次元宅男的福音...

    导读:看到一个有意思的话题,这里也分享给大家.主要介绍了一款关于一键消除马赛克和圣光的软件,如果有实际效果的话,可以说解决了很多人心中的"难题".这类软件,能否在未来成为二次元宅男 ...

最新文章

  1. 权限表管理之更新权限表数据
  2. NHibernate 基本配置 (第一篇)
  3. Vue+ElementUI+SpringMVC实现图片上传和回显
  4. c语言sum出错,ACM:Sum Problem 求和问题C语言源码
  5. 深度强化学习在时序数据压缩中的应用--ICDE 2020收录论文
  6. OA办公自动化系统~~~SSM整合开发
  7. 探究Ubuntu如何存储用户登录密码
  8. 微信小程序生成海报分享:canvas绘制文字溢出如何换行
  9. OLED12864 液晶屏
  10. 【优秀作业】人工鱼群优化算法
  11. python画tan_Python tan() 函数
  12. 通过rgb值判断颜色深浅
  13. Codesys使用电子凸轮实现追剪功能
  14. 如何在Android Studio中设置*md文件打开方式
  15. 【异步电路碎碎念1】 —— 到底什么是异步电路
  16. 微信40029 code解决办法
  17. c语言任伟,任 伟
  18. 教师资格证报名-ie浏览器-不兼容
  19. Word中的滚动文本框是如何制作(可以)
  20. uni问题:APP端打包后拨打电话功能失效

热门文章

  1. 图像卷积和图像滤波的一些知识
  2. C#实现缩放和剪裁图片的方法示例
  3. python编程菱形_Python打印“菱形”星号代码方法
  4. wdcp查看mysql日志_查看修改服务器中的WDCP数据库操作记录
  5. Oracle sql如何把毫秒转为日期,sql – 将毫秒转换为时间戳
  6. canvas html 动态,canvas.html
  7. mysql排序时设置主次_Mysql实现Rownum()排序后根据条件获取名次
  8. matlab 设计 18db,基于混沌理论的微弱MPSK信号解调方案设计
  9. java lock代码写法_java Lock接口详解及实例代码
  10. 前端学习 -- Css -- 属性选择器