首先是优化准则。NLMS算法是基于小均方误差准则,而双耦合算法是基于小平均短时累计误差准则,所以他们的优化准则是不一样的。第二个就是理论的比较好解,NLMS算法具有Wiener-Hopf方程解,而双耦合算法的线性滤波器也具有Wiener-Hopf方程解,非线性滤波器具有小二乘解。第三个维度就是运算量,NLMS运算量是O(M),M是滤波器的阶数,而双耦合算法运算量后面会多一个O(N2),因为他有两个滤波器,N是非线性滤波器的阶数,这里的平方是因为小二乘需要对矩阵进行求逆运算,所以它的运算量比线性的NLMS运算量要大很多。第三个就是控制机制,NLMS算法只有一个滤波器,它的控制主要是通过调整步长来实现的,控制起来要相对简单。而双耦合算法需要对两套滤波器进行耦合控制,控制的复杂度要高很多。实验结果分析,这里我主要是分了两个实验场景比较双耦合算法和NLMS算法的性能,个是单讲测试场景,第二个就是双讲测试场景。首先看一下单讲测试场景,个示例是针对强非线性失真的情况,左边分别原信号的语谱,NLMS算法进行回声消除之后的语谱、双耦合算法的语谱。颜色越深,能量越大。右边这个的是回声抑制比,值越大越好,红色的曲线是双耦合算法的回声抑制比。
右边的非线性声学回声场景。自主可控声学回声服务标准
男人说话的声频为~150Hz,女人说话声频为~230Hz,发动机声频为~250Hz,绝大部分机器的噪音也是以低频为主的中低频噪音),9.声音频率(声频)声波在单位时间内的振动次数称为频率(frequency),单位赫(Hz)。人耳能够听到的声音的整个范围是20~20000Hz,一般把声音频率分为低频(500Hz以下)、中频(500-1000Hz)和高频(1000Hz以上)三个频带。听觉好的成年人能听到的声音频率常在30~16000Hz之间,老年人则常在50~10000Hz之间。10.混响声源停止发音后,产生的声音延续现象。11.混响时间当声场达到稳定的状态后,突然关掉声源使其停止发声,声能逐渐减小到原来声能(稳定时具有的声能)的百万分之一所经历的时间,通常用声压级60dB所需要的时间,一般用T60表示(有时也用T),单位为秒(S);(简而言之:声能密度衰减60dB所需要的时间)。12.混响时间计算公式塞宾公式T60=αS。其中A为总吸声量,α为吸声系数,S为样件面积,V为混响室体积。13.比较好混响时间对大量音质效果评价认为较好的各种用途的厅堂实测的500HZ和1000HZ满场(指实际使用状态)的混响时间进行统计分析,从而得到的混响时间称为比较好混响时间。14.直达声与混响声声源发出的直接到达的声音是直达声。
自主可控声学回声服务标准便于大家对双耦合声学回声消除算法有一个定性的认识。
只需要近端采集信号即可,傲娇的回声消除需要同时输入近端信号与远端参考信号。有同学会问已知了远端参考信号,为什么不能用噪声抑制方法处理呢,直接从频域减掉远端信号的频谱不就可以了吗?行为近端信号s(n),已经混合了近端人声和扬声器播放出来的远端信号,黄色框中已经标出对齐之后的远端信号,其语音表达的内容一致,但是频谱和幅度(明显经过扬声器放大之后声音能量很高)均不一致,意思就是:参考的远端信号与扬声器播放出来的远端信号已经是“貌合神离”了,与降噪的方法相结合也是不错的思路,但是直接套用降噪的方法显然会造成回声残留与双讲部分严重的抑制。接下来,我们来看看WebRTC科学家是怎么做的吧。信号处理流程WebRTCAEC算法包含了延时调整策略,线性回声估计,非线性回声抑制3个部分。回声消除本质上更像是音源分离,我们期望从混合的近端信号中消除不需要的远端信号,保留近端人声发送到远端,但是WebRTC工程师们更倾向于将两个人交流的过程理解为一问一答的交替说话,存在远近端同时连续说话的情况并不多(即保单讲轻双讲)。因此只需要区分远近端说话区域就可以通过一些手段消除绝大多数远端回声。
什么是非线性声学回声?,什么是非线性的声学回声?这里我给出了一张图,的是声学回声的路径图,图的左边对应的是发射端,右边对应的是接收端。我们发出的信号首先要经过D/A变换,从数字域变换到模拟域,然后再经过功率放大器,放大之后驱动喇叭,这样就会发出声音。发出来的声音经过空气信道传播之后,到了接收端被麦克风采集到,然后再次经过功率放大器,再通过A/D变换,从模拟域又变回到数字域。那么这里的y[k]就是我们收到的回声信号。,我们接收到的回声y[k]到底是线性回声还是非线性回声呢?或者说我们应该怎么去判断它?我觉得要解决这个问题,就是要认识清楚这里面的每一个环节,看看它们到底是线性系统还是非线性系统,如果所有的环节都是线性的话,那么很自然y[k]就是一个线性的回声,否则只要有一个环节是非线性的,那么这个回声就是非线性回声。 实现对整个声学回声路径的变化进行有效跟进。
3.双耦合滤波器设计当滤波器的结构确定下来之后,我们要去设计滤波器系数了。设计过程我把它总结成了三步,第一步就是构建优化准则,第二步是求解滤波器的权系数——Wl和Wn,一步就是构建耦合机制。第一步就是构建优化准则。我觉得构建优化准则,应该是整个滤波器设计里面重要的一步,因为它决定了滤波器性能的上限。什么样的优化准则是一个好的优化准则呢?我觉得好的优化准则需要跟问题的物理特性有效匹配起来,所以在构建优化准则之前,我们先对非线性声学回声的特性进行分析,希望通过这种分析去挖掘非线性声学回声的一些物理特性。我们的分析是基于上面的函数,我们称它为短时相关度,它所表示的是两个信号,在一个短时的观测时间窗“T”这样一个尺度范围内的波形的相似程度,需要注意的是这个函数它是统计意义上的,因为我们对它进行了数学期望运算。同时在分子的一项我们还加了一个相位校正因子,目的是为了将这两路信号的初始相位对齐。基于前面构建的短时相关度函数,我们对大量声学回声数据进行分析,并挑选了几组比较典型的数据:绿色的曲线对应的是一组线性度非常好的回声数据。我们从这个数据上可以看到,在整个时间T的变化范围内,它的短时相关度都非常高。
非线性的声学回声消除问题,在实际声学系统里面非常普遍也非常棘手。云南新一代声学回声设计
声学回声消除,其主要用于抑制产品本身发出的声音。自主可控声学回声服务标准
至于双讲恢复能力WebRTCAEC算法提供了{kAecNlpConservative,kAecNlpModerate,kAecNlpAggressive}3个模式,由低到高依次不同的抑制程度,远近端信号处理流程,NLMS自适应算法(上图中橙色部分)的运用旨在尽可能地消除信号d(n)中的线性部分回声,而残留的非线性回声信号会在非线性滤波(上图中紫色部分)部分中被消除,这两个模块是WebrtcAEC的模块。模块前后依赖,现实场景中远端信号x(n)由扬声器播放出来在被麦克风采集的过程中,同时包含了回声y(n)与近端信号x(n)的线性叠加和非线性叠加:需要消除线性回声的目的是为了增大近端信号X(ω)与滤波结果E(ω)之间的差异,计算相干性时差异就越大(近端信号接近1,而远端信号部分越接近0),更容易通过门限直接区分近端帧与远端帧。非线性滤波部分中只需要根据检测的帧类型,调节抑制系数,滤波消除回声即可。下面我们结合实例分析这套架构中的线性部分与非线性分。线性滤波线性回声y'(n)可以理解为是远端参考信号x(n)经过房间冲击响应之后的结果,线性滤波的本质也就是在估计一组滤波器使得y'(n)尽可能的等于x(n),通过统计滤波器组的比较大幅值位置index找到与之对齐远端信号帧,该帧数据会参与相干性计算等后续模块。
自主可控声学回声服务标准
深圳鱼亮科技有限公司专注技术创新和产品研发,发展规模团队不断壮大。目前我公司在职员工以90后为主,是一个有活力有能力有创新精神的团队。诚实、守信是对企业的经营要求,也是我们做人的基本准则。公司致力于打造***的智能家居,语音识别算法,机器人交互系统,降噪。公司力求给客户提供全数良好服务,我们相信诚实正直、开拓进取地为公司发展做正确的事情,将为公司和个人带来共同的利益和进步。经过几年的发展,已成为智能家居,语音识别算法,机器人交互系统,降噪行业出名企业。