为什么声学器件的小型化容易产生非线性的失真呢?这个需要从喇叭发声的基本原理说起,我们都知道声波的本质是一种物理振动,而喇叭发声的基本原理就是通过电流来驱动喇叭的振膜发生振动之后,这个振膜会带动周围的空气分子相应发生振动,这样就产生了声音。如果我们要发出一个大的声音的话,那么就需要在单位时间内用更多的电流去驱动更多的空气分子发生振动。假设有大小不同的两个喇叭,他们用同样的功率去驱动,对于大喇叭而言,由于它跟空气接触的面积要大一些,所以他在单位时间内能够带动更多的空气分子振动,所以它发出来的声音也会大一些。而小喇叭如果想发出跟大喇叭一样大的声音,就需要加大驱动功率,这样会带来一个问题:我们的功率放大器件会进入到一种饱和失真的状态,由此就会带来非线性的失真。这就是声学器件小型化容易产生非线性失真的一个主要的原因。这里廉价化比较好理解了,就不多说了。原因之二,就是声学结构设计的不合理。典型的一个实例就是声学系统的隔振设计不合理。喇叭发声单元跟麦克接收单元之间,通常是需要做隔振处理的,如果没有隔振处理的话,那么在喇叭发声的过程中,他所产生的振动会通过物理方式传递到麦克接收端。
AEC声学回声,电话的扬声器的声音。北京手机声学回声抑制算法
为什么又这么冷呢?我能想到的一个答案是它太难了,它非常有挑战性。下面就来看一下它的技术难点。5非线性声学回声消除的技术难点,我从6个不同的维度比较了线性的和非线性这两种回声消除问题。个维度,系统传递函数。在线性系统里面,我们认为系统传递函数是一个缓慢时变的系统,我们可以通过自适应滤波的方式去逼近这个传递函数,来有效抑制回声。而在非线性系统里面,系统传递函数通常是快变、突变的,我们如果用线性的方法去逼近的话,会出现滤波器的更新速度,跟不上系统传递函数变化的速度,就会导致声学回声消除不理想。第二个维度是优化模型,在线性里面我们是有一套非常完备的线性优化模型,从目标函数的构建到系统优化问题的求解,整个脉络是很清晰的。而在非线性的系统里面,目前是缺少一种有效的模型来对它进行支撑的。接下来的四个维度对应4个问题,它们是线性回声消除领域普遍存在的4个难点问题,这些问题在非线性领域也同样存在。比如强混响问题,我们如果在一个小型会议室里开视频会议,那么声音会经过多次墙壁反射,带来很强的混响,混响的拖尾时间会很长。如果想抑制这样的强混响回声,就需要把线性滤波器的长度加长。
北京手机声学回声抑制算法认识了非线性声学回声、产生的原因、研究现状以及技术难点。
首先是优化准则。NLMS算法是基于小均方误差准则,而双耦合算法是基于小平均短时累计误差准则,所以他们的优化准则是不一样的。第二个就是理论的比较好解,NLMS算法具有Wiener-Hopf方程解,而双耦合算法的线性滤波器也具有Wiener-Hopf方程解,非线性滤波器具有小二乘解。第三个维度就是运算量,NLMS运算量是O(M),M是滤波器的阶数,而双耦合算法运算量后面会多一个O(N2),因为他有两个滤波器,N是非线性滤波器的阶数,这里的平方是因为小二乘需要对矩阵进行求逆运算,所以它的运算量比线性的NLMS运算量要大很多。第三个就是控制机制,NLMS算法只有一个滤波器,它的控制主要是通过调整步长来实现的,控制起来要相对简单。而双耦合算法需要对两套滤波器进行耦合控制,控制的复杂度要高很多。实验结果分析,这里我主要是分了两个实验场景比较双耦合算法和NLMS算法的性能,个是单讲测试场景,第二个就是双讲测试场景。首先看一下单讲测试场景,个示例是针对强非线性失真的情况,左边分别原信号的语谱,NLMS算法进行回声消除之后的语谱、双耦合算法的语谱。颜色越深,能量越大。右边这个的是回声抑制比,值越大越好,红色的曲线是双耦合算法的回声抑制比。
n)中的回声是扬声器播放远端参考x(n),又被麦克风采集到的形成的,也就意味着在近端数据还未采集进来之前,远端数据缓冲区中已经躺着N帧x(n)了,这个天然的延时可以约等于音频信号从准备渲染到被麦克风采集到的时间,不同设备这个延时是不等的。苹果设备延时较小,基本在120ms左右,Android设备普遍在200ms左右,低端机型上会有300ms左右甚至以上。(2)远近端非因果为什么会导致回声?从(1)中可以认为,正常情况下当前帧近端信号为了找到与之对齐的远端信号,必须在远端缓冲区沿着写指针向前查找。如果此时设备采集丢数据,远端数据会迅速消耗,导致新来的近端帧在向前查找时,已经找不到与之对齐的远端参考帧了,会导致后续各模块工作异常。如图10(a)表示正常延时情况,(b)表示非因果。WebRTCAEC中的延时调整策略关键而且复杂,涉及到固定延时调整,大延时检测,以及线性滤波器延时估计。三者的关系如下:①固定延时调整只会发生在开始AEC算法开始处理之前,而且调整一次。如会议盒子等固定的硬件设备延时基本是固定的,可以通过直接减去固定的延时的方法缩小延时估计范围,使之快速来到滤波器覆盖的延时范围之内。下面结合代码来看看固定延时的调整过程。
右边的非线性声学回声场景。
首先这里的A和D比较好判断,他们都属于线性时不变系统。比较难判断的是C,因为在一些比较复杂的场景下,声学回声往往会经过多个不同路径的多次反射之后到达接收端,同时会带有很强的混响,甚至在更极端情况下,喇叭与麦克风之间还会产生相对位移变化,导致回声路径也会随时间快速变化。这么多因素叠加在一起,往往会导致回声消除算法的性能急剧退化,甚至完全失效。有同学可能会问,难道这么复杂的情况,不是非线性的吗?我认为C应该是一个线性时变的声学系统,因为我们区分线性跟非线性的主要依据是叠加原理,前面提到的这些复杂场景,它们依然是满足叠加原理的,所以C是线性系统。这里还要再补充一点,细心的朋友会发现B里面有一个功率放大器,同时在C里面也有一个功率放大器,为什么经B的功率放大器放大之后,可能带来非线性失真,而C的功率放大器不会产生非线性失真呢?二者的主要区别在于B放大之后输出是一个大信号,用来驱动喇叭。而C放大之后输出依然是小信号,通常不会产生非线性的失真。2.非线性声学回声产生的原因.非线性声学回声产生的原因,我一共列了两条原因。原因之一,声学器件的小型化与廉价化,这里所指的声学器件就是前面B里面提到的功率放大器和喇叭。
声学回声消除应用技术。北京手机声学回声抑制算法
双耦合声学回声消除算法的主要贡献体现在两个方面。北京手机声学回声抑制算法
声学回声消除应用技术,随着秒新月异的科技发展,各项技术成果不断地应用在我们日益拓展的各领域需求当中,刷新着我们的生活和工作。地球村的崛起,不断以互联网、物联网等方式揭示着万物相连的关系。无论是飞机、高铁还是电话、网络,都成为托起地球新村时空纵横的重要载体。怎样拉近人与人之间的关系,如何建立起更行之有效的联络方式,提高远程协同工作、信息传达效率成为了一个重要命题。远程会议的出现在很大程度上为这种多极化办公互动提供了质量的平台保障,在借助互联网便捷的远程通信架构下,通讯数据安全,稳定可靠,很长一段时间广受用户青睐。然而美中不足的是,这样的(声音)系统仍逃不出的还是自然声学上的问题。有和业内朋友聊天中谈到,今后的扩声系统也许只保留两级传统装置了,那就是声电转换和电声转换的拾音和还原。而正是这两级客观存在的物理声学现象,造就了我们所讨论的内容。在远程会议系统的终端(本地),为了实现多人互动、多人拾音等目的,系统声音免不了被放大还原,而在诸如此类的放大系统中,为本地音箱能够听到远端声音,并能把本地拾音信号传送到远端而互通。众所周知,话筒在拾取到放大后的音箱信号后。
北京手机声学回声抑制算法
深圳鱼亮科技有限公司是我国智能家居,语音识别算法,机器人交互系统,降噪专业化较早的有限责任公司(自然)之一,公司始建于2017-11-03,在全国各个地区建立了良好的商贸渠道和技术协作关系。深圳鱼亮科技以智能家居,语音识别算法,机器人交互系统,降噪为主业,服务于通信产品等领域,为全国客户提供先进智能家居,语音识别算法,机器人交互系统,降噪。将凭借高精尖的系列产品与解决方案,加速推进全国通信产品产品竞争力的发展。