需要注意的是,如果index在滤波器阶数两端疯狂试探,只能说明当前给到线性部分的远近端延时较小或过大,此时滤波器效果是不稳定的,需要借助固定延时调整或大延时调整使index处于一个比较理想的位置。线性部分算法是可以看作是一个固定步长的NLMS算法,具体细节大家可以结合源码走读,本节重点讲解线型滤波在整个框架中的作用。从个人理解来看,线性部分的目的就是很大程度的消除线性回声,为远近端帧判别的时候,很大程度地保证了信号之间的相干值(0~1之间,值越大相干性越大)的可靠性。我们记消除线性回声之后的信号为估计的回声信号e(n),e(n)=s(n)+y''(n)+v(n),其中y''(n)为非线性回声信号,记y'(n)为线性回声,y(n)=y'(n)+y''(n)。相干性的计算(Matlab代码),两个实验(1)计算近端信号d(n)与远端参考信号x(n)的相关性cohdx,理论上远端回声信号的相干性应该更接近0(为了方便后续对比,WebRTC做了反向处理:1-cohdx),如图5(a),行为计算近端信号d(n),第二行为远端参考信号x(n),第三行为二者相干性曲线:1-cohdx,会发现回声部分相干值有明显起伏,比较大值有,近端部分整体接近,但是有持续波动,如果想通过一条固定的门限去区分远近端帧,会存在不同程度的误判。
非线性声学回声消除技术在整个声学回声消除领域是一个相对比较冷的研究方向。电视声学回声抑制算法
第三个部分是通过实验来检验这个算法的性能;再做一些简单的总结。非线性声学回声1什么是非线性声学回声?,什么是非线性的声学回声?的是声学回声的路径,左边对应的是发射端,右边对应的是接收端。我们发出的信号首先要经过D/A变换,从数字域变换到模拟域,然后再经过功率放大器,放大之后驱动喇叭,这样就会发出声音。发出来的声音经过空气信道传播之后,到了接收端被麦克风采集到,然后再次经过功率放大器,再通过A/D变换,从模拟域又变回到数字域。那么这里的y[k]就是我们收到的回声信号。,我们接收到的回声y[k]到底是线性回声还是非线性回声呢?或者说我们应该怎么去判断它?我觉得要解决这个问题,就是要认识清楚这里面的每一个环节,看看它们到底是线性系统还是非线性系统,如果所有的环节都是线性的话,那么很自然y[k]就是一个线性的回声,否则只要有一个环节是非线性的,那么这个回声就是非线性回声。在这里我将整个回声路径分成了A、B、C、D四个部分。我们一起来看一下,ABCD里面哪一个环节有可能是非线性的?答案应该是B。也就是回声路径里面的功率放大器和喇叭,具体的原因稍后会做详细分析。接下来我想再解释一下为什么A、C、D它们不是非线性的。
电视声学回声抑制算法在构建滤波器模型的过程中结合了非线性声学回声的一些特性。
黑色这条线是标准NLMS算法的回声抑制比。我们可以看到,NLMS算法在收敛之后,回声抑制比只能到10个分贝左右,相对比较低。而双耦合算法在收敛之后,可以达到25个分贝以上,也就是说它比NLMS算法多15个分贝,这个优势是很明显的。接下来我们再看第二个示例,针对弱非线性失真的情况,左边是语谱,右边是回声抑制比。我们评估单讲性能的主要指标是回声抑制比和收敛速度。首先看一下NLMS算法,它在收敛之后,大概可以抑制22~25个分贝。这个算法的收敛速度很慢,大概经过100多帧之后才会进入到相对收敛的状态。再来看一下双耦合算法,在稳定之后,可以抑制35~40个分贝,比NLMS算法大概提升15~20个分贝的回声抑制比。同时它还有一个很明显的优势:收敛速度很快,几乎是回声到了之后,他瞬间就进入到收敛状态。接下来这个是针对不同手机机型的回声抑制比的比较。红色是双耦合算法,蓝色是NLMS算法,从这组数据里面,我们可以看到双耦合算法比NLMS算法普遍提升了大概10个分贝以上的回声抑制比,具有比较大的优势。再进入双讲测试场景。我首先介绍一下测试的示例,这组数据是一个视频会议的数据,左边这个是原始的麦克信号语谱,右边这个是回声参考信号语谱。
为什么声学器件的小型化容易产生非线性的失真呢?这个需要从喇叭发声的基本原理说起,我们都知道声波的本质是一种物理振动,而喇叭发声的基本原理就是通过电流来驱动喇叭的振膜发生振动之后,这个振膜会带动周围的空气分子相应发生振动,这样就产生了声音。如果我们要发出一个大的声音的话,那么就需要在单位时间内用更多的电流去驱动更多的空气分子发生振动。假设有大小不同的两个喇叭,他们用同样的功率去驱动,对于大喇叭而言,由于它跟空气接触的面积要大一些,所以他在单位时间内能够带动更多的空气分子振动,所以它发出来的声音也会大一些。而小喇叭如果想发出跟大喇叭一样大的声音,就需要加大驱动功率,这样会带来一个问题:我们的功率放大器件会进入到一种饱和失真的状态,由此就会带来非线性的失真。这就是声学器件小型化容易产生非线性失真的一个主要的原因。这里廉价化比较好理解了,就不多说了。原因之二,就是声学结构设计的不合理。典型的一个实例就是声学系统的隔振设计不合理。喇叭发声单元跟麦克接收单元之间,通常是需要做隔振处理的,如果没有隔振处理的话,那么在喇叭发声的过程中,他所产生的振动会通过物理方式传递到麦克接收端。
声学回声往往会经过多个不同路径的多次反射之后到达接收端。
26.声聚焦指凹面对声波形成集中反射、使反射声聚集于某个区域,造成声音在该区域特别响的现象。声聚集造成声能过分集中,使声能汇聚点的声音嘈杂,而其他区域听音条件变差,扩大了声场不均匀度,严重影响听众的听音条件。27.声影区由于障碍物或折射的原因,产生声音辐射不到的区域。在声影区内声压级很低,音量很轻。因此声影区的存在也是声压不均匀的原因。28.声染色由于室内频率响应的变化,使原始声音被赋予外加的音色特点。容积小的听音室,本征频率在低频端分布不够密集连续,因此在低频段易产生“共振”的音染现象。共振现象产生的声染色效应,引起声音信号的失真,产生主观听感上的厌恶情绪,严重影响听音效果。29.声闸(声锁)两道门之间保留较大的间距做成通常所称的“门斗”,并对其内表面做强吸声处理,以提高隔声效果,此“门斗”称为声闸(声锁).30.声桥材料直接固定在龙骨上时,受声一侧板的振动会通过龙骨传到另一侧板,这种象桥一样传递声能的现象被称为声桥。31.浮筑结构(房中房)通常只有外部环境很差或声学环境要求较高的情况下才会考虑浮筑结构,即在原房间中再建一个房间(即内套和外套)。分轻质和重质两种。内套和外套之间设置弹性垫层。
深入浅出 WebRTC AEC(声学回声消除)。电视声学回声抑制算法
认识了非线性声学回声、产生的原因、研究现状以及技术难点。电视声学回声抑制算法
喇叭发声单元跟麦克接收单元之间,通常是需要做隔振处理的,如果没有隔振处理的话,那么在喇叭发声的过程中,他所产生的振动会通过物理方式传递到麦克接收端。对麦克接收到的声学信号进行调制,而这种振动本质上是一种随机的、非线性的振动,所以它必然会带来非线性失真。手机声学特性调研我们之前针对市面上主要的手机机型做过一次调研,主要调查声学特性。结果我们很惊讶地发现,市面上超过半数的手机机型,声学特性不够理想,对应这里面的“较差”和“极差”这两档。我们平时用手机开外音玩游戏,或者语音通话时,经常会出现漏回声问题和双讲剪切问题,就与手机声学特性不佳有直接联系。当然这组数据只是针对手机这种电子产品,市面上类似于手机这样的电子产品还有很多,它们应该也有类似的问题。这组数据告诉我们,非线性失真问题在我们生活中的电子产品里是一个普遍存在的问题,我相信对这个问题的研究将会是一个很有价值也很有意义的方向。 电视声学回声抑制算法