WebRtcAec_Process接口如上,参数reported_delay_ms为当前设备需要调整延时的目标值。如某Android设备固定延时为400ms左右,400ms已经超出滤波器覆盖的延时范围,至少需要调整300ms延时,才能满足回声消除没有回声的要求。固定延时调整在WebRTCAEC算法开始之初作用一次,为什么target_delay是这么计算?inttarget_delay=startup_size_ms*self->rate_factor*8;startup_size_ms其实就是设置下去的reported_delay_ms,这一步将计算时间毫秒转化为样本点数。16000hz采样中,10ms表示160个样本点,因此target_delay实际就是需要调整的目标样本点数(aecpc->rate_factor=aecpc->splitSampFreq/8000=2)。我们用330ms延时的数据测试:如果设置默认延时为240ms,overhead_elements次被调整了-60个block,负值表示向前查找,正好为60*4=240ms,之后线性滤波器固定index=24,表示24*4=96ms延时,二者之和约等于330ms。②大延时检测是基于远近端数据相似性在远端大缓存中查找相似的帧的过程,其算法原理有点类似音频指纹中特征匹配的思想。大延时调整的能力是对固定延时调整与线型滤波器能力的补充,使用它的时候需要比较慎重。需要控制调整的频率,以及控制造成非因果的风险。
基于前面构建的短时相关度函数,我们对大量声学回声数据进行分析。信息化声学回声标准
n)中的回声是扬声器播放远端参考x(n),又被麦克风采集到的形成的,也就意味着在近端数据还未采集进来之前,远端数据缓冲区中已经躺着N帧x(n)了,这个天然的延时可以约等于音频信号从准备渲染到被麦克风采集到的时间,不同设备这个延时是不等的。苹果设备延时较小,基本在120ms左右,Android设备普遍在200ms左右,低端机型上会有300ms左右甚至以上。(2)远近端非因果为什么会导致回声?从(1)中可以认为,正常情况下当前帧近端信号为了找到与之对齐的远端信号,必须在远端缓冲区沿着写指针向前查找。如果此时设备采集丢数据,远端数据会迅速消耗,导致新来的近端帧在向前查找时,已经找不到与之对齐的远端参考帧了,会导致后续各模块工作异常。如图10(a)表示正常延时情况,(b)表示非因果。WebRTCAEC中的延时调整策略关键而且复杂,涉及到固定延时调整,大延时检测,以及线性滤波器延时估计。三者的关系如下:①固定延时调整只会发生在开始AEC算法开始处理之前,而且调整一次。如会议盒子等固定的硬件设备延时基本是固定的,可以通过直接减去固定的延时的方法缩小延时估计范围,使之快速来到滤波器覆盖的延时范围之内。下面结合代码来看看固定延时的调整过程。
信息化声学回声标准对于耳机来讲,主要是声学回声,表现为收发环路的隔离度不好。
他的是线性回声传递函数。基于这样的数学假设,我们收到的信号y就可以表示成发射的信号x分别跟这样两个传递函数进行卷积之后的结果。接下来我们对这个模型进行了适当的简化,简化主要是基于数学分解,我们假设非线性的传递函数,可以分解成线性跟非线性这样两个系统函数的组合形式,就会得到中间的方程。接下来对中间的方程进行变量替换,就得到这个表达式,这个表达式它的物理意义很清晰,我们从可以看到,整个回声路径是可以表示成线性回声路径跟非线性回声路径二者之和的形式,这是它的物理意义。2.双耦合自适应滤波器,基于这样一个数学模型,接下来我们就构建了一种新的滤波器结构,称之为双耦合自适应滤波器。这个滤波器跟传统线性的自适应滤波器相比,主要有两个方面的不同,个不同是传统的线性滤波器只有一个学习单元,而我们的这个滤波器有两个学习单元,分别是这里的线性回声路径滤波器,我们用Wl来表示。还有非线性的回声路径滤波器,我们用Wn来表示。第二个不同就是,我们在这两个滤波器之间还加入了一个耦合因子,这个耦合因子目的就是为了协同二者更好的工作,让二者能够发挥出比较大的效能,甚至能够起到1+1>2的效果。
这样会带来一个新的问题:按照Widrow的自适应滤波理论,滤波器的长度越长,其收敛速度越慢,同时权噪声越大,进而导致强混响下回声消除不够理想。第二个问题是延时跳变问题。在实时音视频通话领域,延时跳变是一个比较普遍的问题。主要现象是麦克端采集的信号和回声参考信号之间的时延关系会发生跳变,每次跳变之后就需要重新对齐信号,就会漏一些回声出来。第三个问题是啸叫问题。啸叫的检测和啸叫的抑制是公认的在回声领域的经典难题。还有双讲问题。双讲是评估回声消除算法性能的一个重要指标,当然也是很难处理的一个问题,因为双讲很容易导致滤波器系数发散。综合以上这些维度我们可以看到,非线性的声学回声消除是一个很有挑战的研究方向。双耦合声学回声消除算法这个是我们团队提出来的一种算法,它的主要特点是,在构建滤波器模型的过程中结合了非线性声学回声的一些特性,因此它在抑制非线性回声方面,也体现出固有的优势。1.非线性声学回声系统建模,继续回到前面的这个声学回声路径。我们对这个模型进行了简化。我们将左边的喇叭端用一个传递函数Wn来表示,假设它的是非线性的回声路径传递函数;同时我们将喇叭右边,就是麦克端,统一用Wl来表示。
在构建滤波器模型的过程中结合了非线性声学回声的一些特性。
该技术的出现旨在消除这种因远程网络会议所带来的回授现象,以遏制首先次回声产生所需的必要条件来遏制多次回声的出现。为什么要费那么大周折去抑制回声?这个话题应该不言而喻了。会议、语音扩声讲究的即是STI语音清晰度(可懂度),而回声是语言清晰度的比较大。设想踩脚跟式的语音信号传达到耳朵,听者难受,讲者费劲,对于这样的语音会议来说,那必将是一场灾难。我们把声学回声消除这个技术变成一张实体的插件(设备插卡),在系统中,为实现首先次回声过滤(过滤回声源则过滤多次回声)。这个技术应该插入在系统的哪个环节呢?我们不妨来找找系统中具备近乎相同/相似信号的一级进出环节。该图片经我司设计员制作后作者再编辑通过上图的分析,我们并不难发现一组具备相似信号的输入输出环节。而AEC技术认为,在这里对回声下手是治根的办法!市面上有多种类的回声消除器,也有部分抑制器,其算法和解决办法各有不同,本文就不详细阐释了。须知,通过对具有相似性极高的输入、输出信号的比对,约掉这一具备相似信号的输出,即切断了回授的根源,A地将不再听到回声现象。笔者也经常遇到有用户因远程会议本地有回声而采购了带有AEC回声消除功能的处理器。通过这种分析去挖掘非线性声学回声的一些物理特性。上海无限声学回声
我们把声学回声消除这个技术变成一张实体的插件(设备插卡)。信息化声学回声标准
首先这里的A和D比较好判断,他们都属于线性时不变系统。比较难判断的是C,因为在一些比较复杂的场景下,声学回声往往会经过多个不同路径的多次反射之后到达接收端,同时会带有很强的混响,甚至在更极端情况下,喇叭与麦克风之间还会产生相对位移变化,导致回声路径也会随时间快速变化。这么多因素叠加在一起,往往会导致回声消除算法的性能急剧退化,甚至完全失效。有同学可能会问,难道这么复杂的情况,不是非线性的吗?我认为C应该是一个线性时变的声学系统,因为我们区分线性跟非线性的主要依据是叠加原理,前面提到的这些复杂场景,它们依然是满足叠加原理的,所以C是线性系统。这里还要再补充一点,细心的朋友会发现B里面有一个功率放大器,同时在C里面也有一个功率放大器,为什么经B的功率放大器放大之后,可能带来非线性失真,而C的功率放大器不会产生非线性失真呢?二者的主要区别在于B放大之后输出是一个大信号,用来驱动喇叭。而C放大之后输出依然是小信号,通常不会产生非线性的失真。2.非线性声学回声产生的原因.非线性声学回声产生的原因,我一共列了两条原因。原因之一,声学器件的小型化与廉价化,这里所指的声学器件就是前面B里面提到的功率放大器和喇叭。
信息化声学回声标准
深圳鱼亮科技有限公司位于龙华街道清华社区建设东路青年创业园B栋3层12号,拥有一支专业的技术团队。致力于创造***的产品与服务,以诚信、敬业、进取为宗旨,以建Bothlent产品为目标,努力打造成为同行业中具有影响力的企业。公司以用心服务为重点价值,希望通过我们的专业水平和不懈努力,将语音识别,音效算法,降噪算法,机器人,智能玩具,软件服务,教育培训,芯片开发,电脑,笔记本,手机,耳机,智能穿戴,进出口服务,云计算,计算机服务,软件开发,底层技术开发,软件服务进出口,品牌代理服务。等业务进行到底。深圳鱼亮科技有限公司主营业务涵盖智能家居,语音识别算法,机器人交互系统,降噪,坚持“质量保证、良好服务、顾客满意”的质量方针,赢得广大客户的支持和信赖。