保障远程办公质量,干掉音频回声这么做

一、算法背景

在我们的音视频会议系统中,远端传过来的语音信号经会议设备的扬声器或者音响设备放出后,经房间墙壁等一系列的反射,最后又被麦克风采集并传到远端。这样,远端用户就不仅听到了本地用户讲话的声音,也听到了自己讲话的声音回传,也就是“回声”。

在对声音问题的处理中,包括声音增益、噪声消除、回声消除和啸叫抑制等算法,其目的就是减少音视频会议过程中声音的质量问题,提升音频质量。本文针对回声产生的原因,回声消除算法,回声消除的测试方法,以及回声消除的实现效果进行简单的介绍。

二、算法原理

1.声学回声消除

声学回声消除(简称AEC)的基本原理是估计回声路径的特征参数,产生一个模拟的回声信号,再从接收信号中减去该信号,实现回声抵消。下图给出了单向传输的声学回声消除器的原理图。

image

如上图所示,y(n)代表来自远端的信号;d(n)代表经过墙壁等物体反射而产生的回声;x(n)是近端语音信号;D口是叠加有回声的近端信号。虽然远端信号y(n)和回声信号d(n)是不同的,但是d(n)是由y(n)引起的,两者是高度相关的。我们可以把d(n)表示为y(n)的函数,即d(n) = F(y(n))。函数F被称为回声路径。在回声消除里,函数F表示声音在会议室的墙壁等物体表面多次反射的过程。

对AEC来说,接收到的远端信号作为参考信号,根据由自适应滤波器产生回声估计值d1(n),将r1(n)从近端带有回声的语音信号减去,就得到近端传送出去的信号μ(n)=x(n)+d(n)-d1(n)。在理想情况下,经过回声消除处理后,残留的回声误差e(n)=d(n)-d1(n)将为0,从而实现回音消除。在实际使用中,通过不断修改滤波器的系数,使得估计值d1(n)不断逼近真实回声d(n)。修改滤波器的过程,实际就是求解函数F的过程。

2.自适应滤波算法

最小均方算法(LMS)

LMS(least-mean-square)算法由Hoff与Windrow 于1960年提出,是历史最悠久的自适应算法,其算法结构简单,计算复杂度低、鲁棒性好,但是其抽头权重系数更新通常采用固定的步长,收敛速度慢,且过长的阶数通常引入病态误差,使得滤波器发散。

递归最小二乘法(RLS)

RLS(recursive least-square)算法采用n-1时刻滤波器权向量的最小二乘估计来递推n时刻权向量的最新估计。其收敛速度优于LMS算法,且误差小,稳定性高,但是算法运算量大,实时性差。应用在采样率为8K的实时回声消除系统中,较高的冲击响应产生过高的计算量,无法在实时系统中实现。

归一化最小二乘法(NLMS)

NLMS(normalized least-mean-square)算法是自适应信号处理中应用最流行的算法之一,具有快速收敛的优点,而且计算复杂度适中,结构简单、易于实现,成为多种算法改进的基础,但是阶数固定无法适应多种陌生应用环境。

均衡归一化最小二乘法(PNLMS)

PNLMS(proportionate normalized least-mean-square)算法是对NLMS算法步长控制的改进。为滤波器各权值步长因子赋予与当前滤波器各权值幅度成正比的P步长机制来提升算法的收敛速度,但是时变性能略差,一旦回声路径的稀疏性发生变化,无法实现快速收敛,而且P步长的迭代计算会增加系统计算复杂度。

3.AECM 算法框架

![image](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yMzEyNDQ4Ni0yOGE5MzFjNDU3YWNlNmY3?x-oss-process=image/format,png)

原理图中,远端信号f(n)经过网络被近端设备接收,近端设备的回声消除模块会保留一份作为参考信号,同时近端设备的扬声器会播放出来该远端信号,播放出来的信号经过0次或者多次反射形成回声信号的d(n)与近端信号x(n)一起被近端麦克风收集,形成采集信号y(n)。回声模式选择器会对当前模式进行判断,如果远端信号确实存在,即回声存在,则近端采集到的的信号y(n)会进入自适应滤波器,由自适应滤波器产生回声估计信号d’(n)。如果是近端信号x(n)不存在,则会保存该系数,如果近端信号存在则会使用保存的系数对当前混合信号滤波。并由辅助滤波器产生回声估计信号d’(n),然后近端采集信号y(n)与回声估计信号d’(n)相减的结果会反馈给模式选择器,然后模式选择器调用AEC控制器决定是否进入NLP模块。当这些都完成之后AEC控制器会根据静音检测结果决定是否启用舒适噪声发生器来产生舒适噪声,这些处理都完成之后的信号便是回声消除器的输出信号,即可以经过降噪编码后发往远端。

三、测试方法

1.测试方法

若DUT的扬声器和麦克风为一体设计,则可直接将DUT放置于下图所示位置;若DUT的扬声器和麦克风为分体设计,则需要按照真实使用场景进行放置,将扬声器放置于DUT周围如下图所示。

测试场景包括:单人说话、双人对讲、多人通话。

![image](https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yMzEyNDQ4Ni1hODE2ZjI2MWY5OTI3OWI1?x-oss-process=image/format,png)

在拿到录音文件之后,再对录音文件进行分析,包括:1.AEC算法的收敛时间 2.AEC算法的收敛效果。收敛效果可以用非语音阶段的RMS作为标准。

目前阿里会议在单讲/双讲场景下能够消除绝大多数正常场景下的回声,但是对于极端场景下的脉冲信号,仍有遗漏。如下图所示:

image

但是对比竞品的实际效果,双讲下就存在较多的遗漏回声:

image

2.异常场景

以下这些测试场景,应额外注意:

  1. 脉冲声音如拍手、拍桌子等是否能够消除

  2. 算法刚开始运行时双端同时有声音,是否对算法的收敛存在影响

  3. 算法是否不收敛

服务推荐

发布了0 篇原创文章 · 获赞 0 · 访问量 476

猜你喜欢

转载自blog.csdn.net/weixin_47143210/article/details/105728658