在线性的回声场景里,双耦合的非线性滤波器是处于休眠的状态,所以它的值是趋于0的,这个时候起主导作用的是线性滤波器。接下来我们再看一下右边的非线性声学回声场景。我们假设非线性的失要出现在t1到t2这个时间段内,大家可以看到黄色线在这个时间里,出现了一次突变,对于NLMS算法,当出现非线性失真之后,它的线性滤波器会去逼近非线性失真。但是由于学习的速度跟不上滤波器变化的速度,所以它跟真实的值之间总是存在一个比较大的gap。同时当非线性失真消失之后,它还需要一段时间恢复到正常状态,因此在整个时间段里,都会出现回声泄露的问题。接下来我们再看双耦合算法,在非线性失真出现之后,线性滤波器会进入到一种相对休眠的状态,就是前面所提到的耦合机制,会降低它的更新速度,所以在整个非线性出现的这段时间里,他的值是缓慢变化的。进入非线性失真状态之后,非线性滤波器开始工作,它会快速非线性特性的变化,而当非线性失真消失之后,非线性滤波器又进入休眠状态。将这两个滤波器结合起来,就可以实现对整个声学回声路径的变化进行有效。这里只是给出了一个示例,实际情况往往要复杂很多。接下来我们对这2个滤波器做了特性比较,主要是从4个不同的维度。
声学回声,表现为收发环路的隔离度不好,其根本原因就是耳机在装配时麦克风与喇叭的密封隔离没做好。江苏语音交互声学回声识别
为什么声学器件的小型化容易产生非线性的失真呢?这个需要从喇叭发声的基本原理说起,我们都知道声波的本质是一种物理振动,而喇叭发声的基本原理就是通过电流来驱动喇叭的振膜发生振动之后,这个振膜会带动周围的空气分子相应发生振动,这样就产生了声音。如果我们要发出一个大的声音的话,那么就需要在单位时间内用更多的电流去驱动更多的空气分子发生振动。假设有大小不同的两个喇叭,他们用同样的功率去驱动,对于大喇叭而言,由于它跟空气接触的面积要大一些,所以他在单位时间内能够带动更多的空气分子振动,所以它发出来的声音也会大一些。而小喇叭如果想发出跟大喇叭一样大的声音,就需要加大驱动功率,这样会带来一个问题:我们的功率放大器件会进入到一种饱和失真的状态,由此就会带来非线性的失真。这就是声学器件小型化容易产生非线性失真的一个主要的原因。这里廉价化比较好理解了,就不多说了。原因之二,就是声学结构设计的不合理。典型的一个实例就是声学系统的隔振设计不合理。喇叭发声单元跟麦克接收单元之间,通常是需要做隔振处理的,如果没有隔振处理的话,那么在喇叭发声的过程中,他所产生的振动会通过物理方式传递到麦克接收端。
北京通话声学回声抵消算法声学回声是由于麦克风和扬声器的声学泄露耦合而成。
首先这里的A和D比较好判断,他们都属于线性时不变系统。比较难判断的是C,因为在一些比较复杂的场景下,声学回声往往会经过多个不同路径的多次反射之后到达接收端,同时会带有很强的混响,甚至在更极端情况下,喇叭与麦克风之间还会产生相对位移变化,导致回声路径也会随时间快速变化。这么多因素叠加在一起,往往会导致回声消除算法的性能急剧退化,甚至完全失效。有同学可能会问,难道这么复杂的情况,不是非线性的吗?我认为C应该是一个线性时变的声学系统,因为我们区分线性跟非线性的主要依据是叠加原理,前面提到的这些复杂场景,它们依然是满足叠加原理的,所以C是线性系统。这里还要再补充一点,细心的朋友会发现B里面有一个功率放大器,同时在C里面也有一个功率放大器,为什么经B的功率放大器放大之后,可能带来非线性失真,而C的功率放大器不会产生非线性失真呢?二者的主要区别在于B放大之后输出是一个大信号,用来驱动喇叭。而C放大之后输出依然是小信号,通常不会产生非线性的失真。2.非线性声学回声产生的原因.非线性声学回声产生的原因,我一共列了两条原因。原因之一,声学器件的小型化与廉价化,这里所指的声学器件就是前面B里面提到的功率放大器和喇叭。
对麦克接收到的声学信号进行调制,而这种振动本质上是一种随机的、非线性的振动,所以它必然会带来非线性失真。3.手机声学特性调研,我们之前针对市面上主要的手机机型做过一次调研,主要调查声学特性。结果我们很惊讶地发现,市面上超过半数的手机机型,声学特性不够理想,对应这里面的“较差”和“极差”这两档。我们平时用手机开外音玩游戏,或者语音通话时,经常会出现漏回声问题和双讲剪切问题,就与手机声学特性不佳有直接联系。当然这组数据只是针对手机这种电子产品,市面上类似于手机这样的电子产品还有很多,它们应该也有类似的问题。这组数据告诉我们,非线性失真问题在我们生活中的电子产品里是一个普遍存在的问题,我相信对这个问题的研究将会是一个很有价值也很有意义的方向。4.非线性声学回声消除技术研究现状我之前在IEEE的数字图书馆里搜索了“声学回声消除”的相关文献,一共找到了3402篇,其中有会议论文,还有期刊、杂志、书等。我用同样的方法搜索了“非线声学回声消除”,结果只找到了254篇文献,不到前面文献的1/10,这意味着非线性声学回声消除技术在整个声学回声消除领域是一个相对比较冷的研究方向。既然这个方向很有价值也很有意义。
非线性声学回声消除技术。
首先是优化准则。NLMS算法是基于小均方误差准则,而双耦合算法是基于小平均短时累计误差准则,所以他们的优化准则是不一样的。第二个就是理论的比较好解,NLMS算法具有Wiener-Hopf方程解,而双耦合算法的线性滤波器也具有Wiener-Hopf方程解,非线性滤波器具有小二乘解。第三个维度就是运算量,NLMS运算量是O(M),M是滤波器的阶数,而双耦合算法运算量后面会多一个O(N2),因为他有两个滤波器,N是非线性滤波器的阶数,这里的平方是因为小二乘需要对矩阵进行求逆运算,所以它的运算量比线性的NLMS运算量要大很多。第三个就是控制机制,NLMS算法只有一个滤波器,它的控制主要是通过调整步长来实现的,控制起来要相对简单。而双耦合算法需要对两套滤波器进行耦合控制,控制的复杂度要高很多。实验结果分析,这里我主要是分了两个实验场景比较双耦合算法和NLMS算法的性能,个是单讲测试场景,第二个就是双讲测试场景。首先看一下单讲测试场景,个示例是针对强非线性失真的情况,左边分别原信号的语谱,NLMS算法进行回声消除之后的语谱、双耦合算法的语谱。颜色越深,能量越大。右边这个的是回声抑制比,值越大越好,红色的曲线是双耦合算法的回声抑制比。
实现对整个声学回声路径的变化进行有效跟进。北京通话声学回声抵消算法
认识了非线性声学回声、产生的原因、研究现状以及技术难点。江苏语音交互声学回声识别
AEC定义声学回声(AcousticEcho)电话的扬声器的声音(包括反射声),被麦克风拾取传送给远端,使得远端说话人又听到自己的声音,广义回声指的是设备喇叭和自身麦克风的耦合现象都称为回声。回声消除AEC(AcousticEchoCancellation)一般指的是声学回声消除,其主要用于抑制产品本身发出的声音,使得产品在播放音频时依然可以进行语音交互;随着秒新月异的科技发展,各项技术成果不断地应用在我们日益拓展的各领域需求当中,刷新着我们的生活和工作。地球村的崛起,不断以互联网、物联网等方式揭示着万物相连的关系。无论是飞机、高铁还是电话、网络,都成为托起地球新村时空纵横的重要载体。怎样拉近人与人之间的关系,如何建立起更行之有效的联络方式,提高远程协同工作、信息传达效率成为了一个重要命题。远程会议的出现在很大程度上为这种多极化办公互动提供了质量的平台保障,在借助互联网便捷的远程通信架构下,通讯数据安全,稳定可靠,很长一段时间广受用户青睐。然而美中不足的是,这样的(声音)系统仍逃不出的还是自然声学上的问题。有和业内朋友聊天中谈到,今后的扩声系统也许只保留两级传统装置了,那就是声电转换和电声转换的拾音和还原。
江苏语音交互声学回声识别