上海语音识别声学回声抵消算法

时间:2022年09月06日 来源:

    在线性的回声场景里,双耦合的非线性滤波器是处于休眠的状态,所以它的值是趋于0的,这个时候起主导作用的是线性滤波器。接下来我们再看一下右边的非线性声学回声场景。我们假设非线性的失要出现在t1到t2这个时间段内,大家可以看到黄色线在这个时间里,出现了一次突变,对于NLMS算法,当出现非线性失真之后,它的线性滤波器会去逼近非线性失真。但是由于学习的速度跟不上滤波器变化的速度,所以它跟真实的值之间总是存在一个比较大的gap。同时当非线性失真消失之后,它还需要一段时间恢复到正常状态,因此在整个时间段里,都会出现回声泄露的问题。接下来我们再看双耦合算法,在非线性失真出现之后,线性滤波器会进入到一种相对休眠的状态,就是前面所提到的耦合机制,会降低它的更新速度,所以在整个非线性出现的这段时间里,他的值是缓慢变化的。进入非线性失真状态之后,非线性滤波器开始工作,它会快速非线性特性的变化,而当非线性失真消失之后,非线性滤波器又进入休眠状态。将这两个滤波器结合起来,就可以实现对整个声学回声路径的变化进行有效。这里只是给出了一个示例,实际情况往往要复杂很多。接下来我们对这2个滤波器做了特性比较,主要是从4个不同的维度。

     声学回声的原理是什么?上海语音识别声学回声抵消算法

上海语音识别声学回声抵消算法,声学回声

    什么是非线性声学回声?,什么是非线性的声学回声?这里我给出了一张图,的是声学回声的路径图,图的左边对应的是发射端,右边对应的是接收端。我们发出的信号首先要经过D/A变换,从数字域变换到模拟域,然后再经过功率放大器,放大之后驱动喇叭,这样就会发出声音。发出来的声音经过空气信道传播之后,到了接收端被麦克风采集到,然后再次经过功率放大器,再通过A/D变换,从模拟域又变回到数字域。那么这里的y[k]就是我们收到的回声信号。,我们接收到的回声y[k]到底是线性回声还是非线性回声呢?或者说我们应该怎么去判断它?我觉得要解决这个问题,就是要认识清楚这里面的每一个环节,看看它们到底是线性系统还是非线性系统,如果所有的环节都是线性的话,那么很自然y[k]就是一个线性的回声,否则只要有一个环节是非线性的,那么这个回声就是非线性回声。 上海语音识别声学回声交互非线性的声学回声消除问题。

上海语音识别声学回声抵消算法,声学回声

    这样会带来一个新的问题:按照Widrow的自适应滤波理论,滤波器的长度越长,其收敛速度越慢,同时权噪声越大,进而导致强混响下回声消除不够理想。第二个问题是延时跳变问题。在实时音视频通话领域,延时跳变是一个比较普遍的问题。主要现象是麦克端采集的信号和回声参考信号之间的时延关系会发生跳变,每次跳变之后就需要重新对齐信号,就会漏一些回声出来。第三个问题是啸叫问题。啸叫的检测和啸叫的抑制是公认的在回声领域的经典难题。还有双讲问题。双讲是评估回声消除算法性能的一个重要指标,当然也是很难处理的一个问题,因为双讲很容易导致滤波器系数发散。综合以上这些维度我们可以看到,非线性的声学回声消除是一个很有挑战的研究方向。双耦合声学回声消除算法这个是我们团队提出来的一种算法,它的主要特点是,在构建滤波器模型的过程中结合了非线性声学回声的一些特性,因此它在抑制非线性回声方面,也体现出固有的优势。1.非线性声学回声系统建模,继续回到前面的这个声学回声路径。我们对这个模型进行了简化。我们将左边的喇叭端用一个传递函数Wn来表示,假设它的是非线性的回声路径传递函数;同时我们将喇叭右边,就是麦克端,统一用Wl来表示。

   

    如果设置nlp_mode=kAecNlpAggressive,α大约会在30左右。如果当前帧为近端帧(即echo_state=false),假设第k个频带hNl(k)=,hNl(k)=hNl(k)^α=,即使滤波后的损失听感上几乎无感知。如图8(a),hNl经过α调制之后,幅值依然很接近。如果当前帧为远端帧(即echo_state=true),假设第k个频带hNl(k)=,hNl(k)=hNl(k)^α=,滤波后远端能量小到基本听不到了。如图8(b),hNl经过α调制之后,基本接近0。经过如上对比,为了保证经过调制之后近端期望信号失真小,远端回声可以被抑制到不可听,WebRTCAEC才在远近端帧状态判断的的模块中设置了如此严格的门限。另外,调整系数α过于严格的情况下会带来双讲的抑制,如图9第1行,近端说话人声音明显丢失,通过调整α后得以恢复,如第2行所示。因此如果在WebRTCAEC现有策略上优化α估计,可以缓解双讲抑制严重的问题。延时调整策略回声消除的效果与远近端数据延时强相关,调整不当会带来算法不可用的风险。在远近端数据进入线性部分之前,一定要保证延时在设计的滤波器阶数范围内,不然延时过大超出了线性滤波器估计的范围或调整过当导致远近端非因果都会造成无法收敛的回声。先科普两个问题:。1)为什么会存在延时?首先近端信号d。

   非线性声学回声系统建模。

上海语音识别声学回声抵消算法,声学回声

    为什么声学器件的小型化容易产生非线性的失真呢?这个需要从喇叭发声的基本原理说起,我们都知道声波的本质是一种物理振动,而喇叭发声的基本原理就是通过电流来驱动喇叭的振膜发生振动之后,这个振膜会带动周围的空气分子相应发生振动,这样就产生了声音。如果我们要发出一个大的声音的话,那么就需要在单位时间内用更多的电流去驱动更多的空气分子发生振动。假设有大小不同的两个喇叭,他们用同样的功率去驱动,对于大喇叭而言,由于它跟空气接触的面积要大一些,所以他在单位时间内能够带动更多的空气分子振动,所以它发出来的声音也会大一些。而小喇叭如果想发出跟大喇叭一样大的声音,就需要加大驱动功率,这样会带来一个问题:我们的功率放大器件会进入到一种饱和失真的状态,由此就会带来非线性的失真。这就是声学器件小型化容易产生非线性失真的一个主要的原因。这里廉价化比较好理解了,就不多说了。原因之二,就是声学结构设计的不合理。典型的一个实例就是声学系统的隔振设计不合理。喇叭发声单元跟麦克接收单元之间,通常是需要做隔振处理的,如果没有隔振处理的话,那么在喇叭发声的过程中,他所产生的振动会通过物理方式传递到麦克接收端。

     我们把声学回声消除这个技术变成一张实体的插件(设备插卡),在系统中,为实现次回声过滤。上海语音识别声学回声抵消算法

认识了非线性声学回声、产生的原因、研究现状以及技术难点。上海语音识别声学回声抵消算法

    就得到了非线性滤波器的比较好解,它具有小二乘估计形式。第三步构建耦合机制。在介绍耦合机制之前,先说一下我对这种耦合机制的期望特性。我希望在声学系统的线性度非常好的情况下,线性滤波器起到主导作用,而非线性滤波器处于休眠的状态,或者关闭的状态;反过来,当声学系统的非线性很强时,希望非线性滤波器起到主导作用,而线性滤波器处于半休眠状态。实际声学系统往往是非线性与线性两种状态的不断交替、叠加,因此我们希望构建一种机制来对这两种状态进行耦合控制。为了设计耦合机制,就必须对线性度和非线性度特征进行度量。因此,我们定义了两个因子,分别是线性度因子和非线性度因子,对应左边的这两个方程。而我们进行耦合控制的基本的思想就是将这两个因子的值代入到NLMS算法和小二乘算法之中,调整二者的学习速度。为了便于大家对双耦合声学回声消除算法有一个定性的认识,我又画了一组曲线,左边一组对应的是线性回声的场景。我们首先来看一下NLMS算法,黄色曲线真实的系统传递函数,红色曲线是NLMS算法的结果。可以看到,在线性场景下,NLMS算法得到的线性滤波器可以有效逼近真实传递函数,进而能够有效抑制线性声学回声。下面再来看一下这个双耦合算法。

     上海语音识别声学回声抵消算法

深圳鱼亮科技有限公司是一家有着雄厚实力背景、信誉可靠、励精图治、展望未来、有梦想有目标,有组织有体系的公司,坚持于带领员工在未来的道路上大放光明,携手共画蓝图,在广东省等地区的通信产品行业中积累了大批忠诚的客户粉丝源,也收获了良好的用户口碑,为公司的发展奠定的良好的行业基础,也希望未来公司能成为*****,努力为行业领域的发展奉献出自己的一份力量,我们相信精益求精的工作态度和不断的完善创新理念以及自强不息,斗志昂扬的的企业精神将**深圳鱼亮科技供应和您一起携手步入辉煌,共创佳绩,一直以来,公司贯彻执行科学管理、创新发展、诚实守信的方针,员工精诚努力,协同奋取,以品质、服务来赢得市场,我们一直在路上!

信息来源于互联网 本站不为信息真实性负责