一种适用于双讲情况的回声消除结构

2022-07-23 15:51任思明夏秀渝
现代计算机 2022年10期
关键词:频域时域滤波器

任思明,夏秀渝

(四川大学电子信息学院,成都 610065)

0 引言

近年来,随着移动通信的快速发展,免提通话的应用领域也逐渐扩大。但免提通话场景中声学回声的存在严重影响了通话质量,降低了用户的听觉体验。如何消除回声,实现高质量的语音通信已经成为免提通话中待解决的主要问题之一。

图1 回声消除的基本原理

但在现实通话环境中,尤其是免提通话环境下,近端话音干扰是不可避免的,因此为了提高回声消除系统在双话情况下的效能,必须要检测通话双方是否存在双端通话,根据具体情况调节自适应滤波器系数的迭代更新,避免滤波器的权值发散。当检测器检测到不存在双端通话的时候,自适应滤波器进行正常系数更新和自适应滤波;当检测器检测到存在双端通话的时候,自适应滤波器停止系数更新,冻结滤波器系数,只进行简单的滤波。

由此可见,双端通话检测对回声消除系统的性能十分重要,为了解决双端通话问题,研究者们提出了很多双端通话检测算法。常见的检测算法有基于能量的检测算法、基于信号互相关的检测算法、基于过零率的检测算法、基于双滤波器的算法等。其中基于能量的检测算法简单易行,但检测效率比较低,例如经典的GEIGEL算法;1991年Ye和Wu提出了互相关算法后,2000年Gansler和Benesty在互相关的基础上进行了改进,提出了归一化互相关(Normalized Cross-Correlation,NCC)算法,检测效率较高。其余算法也大多原理类似,这些检测算法都能在一定程度上检测到双端通话的发生。

但性能较好的回声消除器不只需要双话检测模块,还需要结合其他模块才能实现较好的回声消除效果。针对以上问题,本文提出一种适用于双端通话的回声消除结构,该结构中采用NCC进行双端通话检测,PFBLMS算法进行滤波器权值自适应更新,同时结合后置滤波器技术消除残余回声,进一步提高回声消除器的性能,实验仿真表明该结构在收敛速度和稳态误差方面具有明显优势,同时能正确判断双端通话的发生,在回波抑制比、收敛速度及输出音频质量等方面能得到比较好的效果。

1 PFBLMS算法

实际应用场景尤其是免提视频会议通信系统中,房间回声路径时延可能长达几百毫秒,在8 kHZ的采样率下,可能需要上千阶的滤波器才能满足需求,而传统的回声消除系统一般采用归一化LMS(Normalized LMS,NLMS)算法,其计算复杂度会随着滤波器的阶数呈线性增长。为了克服这个问题,可采用PFBLMS算法来进行自适应更新,减少回声消除系统的计算复杂度,提高算法的收敛速度。

PFBLMS算法先对信号进行分块划分,然后在频域进行滤波器系数的逐块更新。利用快速傅里叶变换(FFT)作为中间步骤实现快速卷积,同时滤波器系数用逐块更新代替逐点更新,大大降低了频域LMS算法的复杂度,也克服了频域LMS算法处理延迟大的缺点。

该算法首先在时域上对滤波器输入信号()和滤波器权系数()做分块处理。设代表迭代次数,代表滤波器阶数,算法首先将滤波器分为段,每段的长度为,则有=×,则第段滤波器可以表示为:

()用分块形式可以表示为:

同样地,输入信号()可以用分块形式表示:

同理可得时域误差向量为:

其中()表示第次迭代滤波器的期望输出,长度为,则得到的时域补偿向量长度也为。将()扩展得到频域的误差向量为:

对于无约束的PFBLMS算法,其频域系数更新公式可以表示为:

2 基于归一化互相关(NCC)的双端检测算法

双端通话检测是AEC系统中非常重要的一部分,其目的是检测当前的通话系统所处的话音通信状态,即当前时刻是否处于双端通话,让回声消除器根据不同的话音状态对输入信号进行不同的处理,主要工作原理如下:

(1)利用AEC系统中的远端语音信号、近端麦克风信号、误差信号等构造一个检测统计量;

(2)利用这个统计量和预先设定的门限值T进行对比,一般来说如果<T,则认为检测到双端通话的发生;

(3)一旦检测到存在双端通话,则自适应滤波器停止系数更新,冻结当前系数,只进行滤波;

(4)当次滤波完成后,再次检测当前通信状态,直到≥T时,认为双端通话结束,自适应滤波器继续进行滤波和系数更新。

一般来说门限值T必须是一个独立的常数。NCC是一种常见的基于信号相关性的双端检测算法。其利用远端信号和近端麦克风输入信号来构造检测统计量,其主要的原理如下:

当远端信号()=0时,

其中:

则可以将式(12)表示为:

当()≠0时,

则双端发声统计量可以记做:

将式(12)带入式(16)可以得到检测变量:

从式(17)可以很容易得到,()=0时,即不存在近端话音时,=1;当()≠0时,即存在近端话音时,<1。

因此基于以上描述,我们能通过检测变量的值判断双话情况是否发生,通过检测变量的特征,设定恰当的门限值T,将检测变量与门限值进行比较,通过比较结果判定当前时刻是否发生双话。

3 双端通话下的回声消除结构

为了实现快速、高效、鲁棒性好的回声消除,本文采用的双端通话回声消除新结构(如图2所示),主要由以下三部分构成:双端检测、自适应算法、后置滤波。

图2 本文提出的回声消除新结构

在真实的通话环境中,需要实时监测话音的活动状态。自适应滤波器才能根据不同的话音活动状态去进行相应的处理。因此,双端检测算法对存在双端通话时回声消除系统的性能有很大影响。NCC双端检测算法简单易行,双端通话检测效能较为理想,本文采用的双端通话回声消除新结构采用NCC来进行双端通话检测。

传统回声消除结构采用NCC双端通话检测算法进行检测后,再采用时域的NLMS算法或者频域的LMS算法来进行自适应滤波器的更新,时域的NLMS算法实现简单,但缺点是计算复杂度高,频域LMS算法计算复杂度低,但延迟高。因此本文采用PFBLMS算法来进行滤波器的自适应迭代,时间复杂度更低,算法延迟更小。

只采用自适应滤波器对回声抑制的能力有限,所以在回声抑制系统中添加非线性处理模块(Nonlinear Processing,NLP)具有重要意义,其目的是抑制线性滤波后误差信号中的残留回声。主要原理是利用近端信号()和误差信号()之间的频域相干性C ,结合近端信号()和远端信号()的频域相干性C ,利用C C 计算出每个频带的抑制因子,将抑制因子与对应的频带相乘,从而实现对残留回声的抑制。

4 仿真与分析

将本文所采用的回声消除结构用于回声消除,并采用归一化失调(Normalized misalignment,MIS)和回波抑制比(Echo return loss enhancement,ERLE)两个参数作为衡量回声消除效果的指标,比较不同方法下输出语音的时域波形图,直观比较回声消除的效果,其中MIS和ERLE两个指标的定义如下:

归一化失调值越小,表明自适应滤波器的系数越接近真实房间路径的冲激响应。回波抑制比的值越大,表明回声消除系统对回声的抑制程度越大。

实验一:高斯白噪声作为输入信号。远端话音输入均值为0、方差为1的高斯白噪声,并在近端添加信噪比为20 dB的高斯白噪声作为背景噪声。信号采样率设为8 kHZ。真实房间路径冲激响应如图3所示,长度为1024。

图3 回声通道的冲激响应

归一化失调值和回波抑制比如图4所示。可以看出,归一化失调值方面,在滤波器迭代的初始阶段,本文所采用的PFBLMS算法的收敛速度介于时域NLMS和频域NLMS之间,但是当到达收敛状态之后,本文所采用的算法稳态误差最小;在回波抑制比方面,本文所采用的方法到达稳态后回波抑制比最高。当环境发生突变之后,本文算法的稳态误差和收敛速度都能达到较好的水平。

图4 白噪声输入下的归一化失调和回波抑制比

实验二:真实话音作为输入。远端话音输入为一段长为20秒的语音,近端话音在4~8秒处有一段长为4秒的语音,且在近端添加相较于近端话音信噪比为30 dB的白噪声作为背景噪声,近端语音、背景噪声和回声信号一起作为近端麦克风的采集信号。信号采样率设为8 kHz。远端话音、近端话音及麦克风话音的时域波形如图5所示。

图5 远端话音、近端话音及麦克风话音时域波形

存在双话情况下三种方法进行回声消除后,输出语音的时域波形如图6所示。从时域波形可以看出,三种方法均对回声信号有一定的抑制作用,在双讲时刻都能防止滤波器的发散。但从图中可以看出,在近端含背景噪声的情况下,从听觉感受上基于GEIGEL-NLMS算法的语音失真最严重,NCC-NLMS算法下的残留回声最大,本文方法的残留回声最小、语音失真也最小、语音的听觉感受最好。说明无论在双讲时刻还是在非双讲时刻,本文所提方法均优于GEIGEL算法和简单的时域NCC算法的回声消除效果。

图6 三种方法下的输出语音

三种方法的回波抑制比如图7所示,可以看出三种方法在双讲时刻下的性能都没有发生严重恶化,虽然基于NCC算法的两种方法在自适应迭代初始的收敛速度较为缓慢,但基于GEIGEL算法的方法在接近收敛后的回波抑制低于另外两种方法。另外,双讲时刻下三种算法的回波抑制比均有一定程度的下降,其中GEIGEL算法下降最明显,本文所提算法下降程度最低。本文所提出的方法在回波抑制效果和收敛速度上均达到了比较理想的效果,在较低的算法复杂度下实现了较好的回波消除效果。

图7 三种方法的回波抑制比

5 结语

本文提出了一种适用于双端通话下的回声消除结构,该结构中采用NCC算法进行双端检测,PFBLMS算法进行自适应滤波器系数更新,最后采用后置滤波技术消除残余回声。算法时间复杂度方面,回声消除系统所采用的PFBLMS算法相比于时域NLMS算法降低了复杂度,相比于频域LMS算法减少了时延。仿真实验表明,该系统的回声性能优于传统的GEIGEL-NLMS算法及NCC-NLMS算法下的回声消除,在语音失真度较小的情况下消除了残留回声。本文提出的回声消除结构也有一些待改进的方面,①NCC算法的最优门限难以确定,远端话音改变或回声路径延迟过大都有可能造成最优门限改变;②经过非线性处理之后的近端语音仍然有一定程度的失真。接下来的工作将考虑针对这些缺点不断完善和优化所提出的回声消除系统。

猜你喜欢
频域时域滤波器
浅谈有源滤波器分析及仿真
CIC插值滤波器的研究
晚霞浅淡少年糖
一种海上浮式风电基础频域动力响应分析新技术
智慧农业物联网节点故障处理分析
计算机网络技术在电子信息工程中的运用
基于MATLAB 的信号时域采样及频率混叠现象分析
FIR滤波器线性相位特性的研究
两种常用漂浮式风力机平台动态特性分析
不同入射角风波流海上漂浮式风力机频域与时域动态特性