魏丹丹, 吴军, 周翊
1. 遵义师范学院 信息工程学院,贵州 遵义 563002;2. 重庆邮电大学 通信与信息工程学院,重庆 400065
得益于5G通信技术成熟和业务的蓬勃开展, 宽带语音给用户带来了更优质的接近面对面交流的沟通体验. 目前, 用户在各类线上会议软件的注册量或者使用以每年数10倍甚至更多倍数的速度增长. 但是, 目前线上会议系统的研究还存在许多亟待解决的现实应用问题, 例如现有会议系统中搭载的自适应滤波器回声消除算法(Acoustic Echo Cancellation, AEC)在脉冲噪声干扰或双端对讲情况下经常存在发散的问题[1], 实时性要求得不到保证[2]. 因此, 创建能够克服这一问题并提升用户体验的回声消除算法是当前的主要任务. 回声消除算法在线上会议系统的应用主要是远端用户将语音信号从发送室传到近端接收室, 远端语音信号通过扬声器播放出来, 经过房间的回波路径不停反射后得到回声信号, 该信号同背景噪声一起被话筒拾取得到期望信号. 而回声消除算法不断迭代更新权重系数实现对回声路径建模, 从而估计出回声信号[3-4]. 基于最小均方误差准则(Minimum Mean Square Error, MMSE)的归一化最小均方(Normalized Least Mean Square, NLMS)算法[5]、 迭代最小均方(Recursive Least Mean, RLS )算法[6]及各类变形算法由于计算复杂度低, 结构简单等优点被广泛应用到回声消除中, 但是却无法克服输入语音信号高度相关的影响[7]. 对此, Wang等[8]提出一种通过多个输入向量更新权重系数的仿射投影(Affine Projection Algorithm, APA)算法, 但是APA收敛速度加快是以计算复杂度增加为代价的. 此外, 在非高斯干扰下, APA算法性能因为“2-范数准则”特征有所下降, 并利用低阶规范对非高斯噪声的鲁棒性[9-10]提出了基于经典“1-范数准则”的一种无矩阵求逆的仿射投影符号算法(Affine Projection Sign Algorithm, APSA)[11]. 但是步长因子和正则因子控制的跟踪性能无法满足工程实践的需求, 为了同时满足收敛速度快和稳态误差小的跟踪性能要求[12], 一种基于凸组合方式的算法[13]被提出, 所谓凸组合[14]就是一种利用两个步长参数进行换挡操作的技术. 小步长参数和大步长参数分别控制误差矢量和收敛速度. 凸组合技术最早是应用在LMS算法中, 文献[15]首次将凸组合技术引入APA算法中, 接着一系列改进凸组合仿射投影算法甚至凸组合3个独立滤波器抽头系数的方案被提出[16-17], 从而提高了算法总体性能.
有学者在对线上会议系统中的双端讲话干扰和脉冲噪声问题深入研究的基础上, 提出了一种改进型凸组合仿射投影符号算法. 该算法首先在AEC中加入双端检测(Double Talk Detection, DTD)[18], DTD方案一般有两种形式: 一种是比较远端语音信号和近端麦克风信号的能量, 如著名的广泛应用于线路回波消除(Line Echo Cancellation)中的Geigel法[19]; 另一种是通过检测远端和近端麦克风信号之间的相关性来判断DT(Double Talk). 原理在于回波信号与远端语音信号高度相关, 而近端语音与远端语音的相关性却很低. 相关检测可通过计算远端信号与近端信号的互相关矢量来实现. 然后, 对噪声建模, 用新的非线性函数替代原算法中的Sign函数对噪声性能进行提升, 防止算法在脉冲噪声影响下发散.
本文基于图1所示线上会议系统的声学回声消除系统框图进行分析[20], 输入语音信号x(n)经过回波路径滤波器为h(n)的发射室产生回波y(n), 该回波信号与加性噪声v(n)一起被麦克风拾取构成期望信号d(n). 声学回波路径由一个自适应有限脉冲响应(Finite Impulse Response, FIR)滤波器w(n)建模, 滤波器输出信号和麦克风输入端信号相比较, 得到误差信号, 通过最小均方误差代价函数对自适应滤波器的抽头系数进行调整, 最终使包含期望信号的目标函数得到最小化值. 自适应滤波器w(n)与声学回波路径h(n)的长度L相同.
图1 线上会议系统的AEC设置
APA是一种数据重用算法, 它不仅利用当前的输入矢量进行滤波器系数更新, 而且重复利用过去的K-1个输入矢量,K为算法投影阶数. 假定输入噪声v服从均值为零, 方差为σ2的高斯分布, APA的更新公式可由一个受线性约束的最小化表达式推导, 即
(1)
(2)
线上会议系统中的输入语音信号具有高度相关性, 传统算法收敛速度明显降低, 而APA算法具有降低相关的特性, 输入语音信号严重相关时仍能快速收敛而不引起算法失调. 但是, 算法在外界噪声影响下的鲁棒性能较差, 算法性能严重衰退. 为了克服对自适应滤波算法的不利影响, 文献[11]提出了仿射投影符号算法, 基于l1范数的符号函数APSA算法在某种程度上可以视为APA与符号算法的结合, 算法描述如下所示:
(3)
(4)
ei,p≈ei
(5)
ei=di-yi
(6)
(7)
式(3)-式(7)中, ‖·‖1是矢量的l1范数,γ是将约束条件改为无约束代价函数时引入的拉格朗日乘子, sign(·)是符号函数. 由于后验误差矢量ei,p在实践中无法获得, 将其替代为近似的先验误差矢量ei.
凸组合技术是一种组合因子的迭代方法, 为工程实践提供了很好的解决方案. 与APSA固定步长方案不同的是, CC-APSA算法应用凸组合技术独立运行两个不同步长来同时满足自适应滤波算法对高收敛速度和低稳态误差的需求. 其中一个用大步长μ1来保障算法的快速收敛, 另一个用小步长μ2来保障算法的低稳态误差. 最终CC-APSA算法性能优于其中任何一个步长的自适应滤波算法. 算法的整体输出表示为
yi=λiy1,i+(1-λi)y2,i
(8)
λi=sgm[αi]=1/(1+e-αi)
(9)
式(9)中,αi的自适应更新基于最小误差l1范数采用梯度下降方案求出, 即
(10)
式(10)中,μα是αi的自适应更新步长, 文献[15]建议αi应被限定在对称区间[-α+,α+]内, 并指出将其设定为4是合适的选择. 因此, 修改式(4)得到CC-APSA算法的更新公式为
(11)
式(11)中,β是光滑因子.
线上会议系统中的双端讲话检测(DTD)是一个难点, 基于信号包络检测的DTD是一种低运算量的算法, 该方法通过比较远端语音信号和近端麦克风信号的能量进而作出相应的DT判断[22]. 这点和Geigel方法性质类似. 但是, Geigel方法比较的是单个数据点的绝对值, 检测函数的变化非常剧烈. 为了得到更准确稳定的判据, 信号保罗检测法采用的是信号能量而非单个数据点. 通过IIR滤波平滑的方式来计算信号包络作为信号能量的度量, 然后比较相关的估计值得出DT判断. 其中, 输入语音信号能量为:
vx(n)=αvx(n-1)+(1-α)|x(n)|
(12)
式(12)中,α=0.99是遗忘因子, 麦克风信号能量为:
vd(n)=αvd(n-1)+(1-α)|d(n)|
(13)
检测函数因此可以计为
(14)
式(14)中, 参数γ在只有背景噪声时用来限制检测函数的取值, 一般设为0.05. 通常情况下, 回波能量相对于远端语音信号能量较弱, 且近端语音信号能量比回波能量高. 因此, 检测函数的值会随着DT出现而显著增大, 并随着DT结束而减小. 将检测函数值和一个阈值T相比较, 就可以做出相应的判断. 由于语音信号的能量具有时变特性, 固定阈值T方案不是好的选择, 必须设计一个能跟踪信号能量变化的时变阈值T(n). 当自适应滤波器收敛后, 其输出y(n)可以近似地认为等同于真实的回波, 因此可以用来作为时变阈值的参考, 于是有:
(15)
式(15)中,κ=0.02是一个小的正数, 用来为检测误差留下一点余地. 比较两者的值可以给出DT判断. 其中,vx(n)的作用可看作是为了增加算法准确度引入的一个归一化处理.
本节提出一种新的凸组合仿射投影符号算法NCC-APSA(Novel Covex Combination Affine Projection Sign Algorithm), 新算法用新的非线性Sigmoid函数类型替代原算法中的sign函数, 在第2部分双端讲话干扰推导基础上定义新的DT统计量g(n), 有效克服线上会议系统中的双端对讲干扰和脉冲噪声干扰, 而且在收敛速度、 稳态失调等方面依旧保持良好性能. 根据滤波器线性约束最小化表达式改写为代价函数形式为:
(16)
利用负梯度最陡下降法, 对式(16)两边关于wi求导:
(17)
令
-Usign(ei,p)+2γ(wi-wi-1)=0
代入约束条件和基于l1范数的凸组合技术, 然后代入式(10)组合因子推导结果, 更新公式为:
(18)
为了保证算法在脉冲噪声下的鲁棒性, 将式(18)改进为更加平稳的非线性函数sigmoid形式, 在算法实施时, 为了克服双端对讲干扰, 本文做了一点处理. 定义新的DT统计量g(n), 采用ζ(n)-T(n)作为检测函数, 通过试验设计固定阈值和控制环节来实现更稳定的DTD, 改进后的权重系数更新为:
(19)
式(19)中,g(n)由如下表达式获得:
(20)
本文基于MATLAB仿真平台对算法性能进行模拟, 第1部分采用不同类型输入信号和系统脉冲响应分别分析APA算法、 APSA算法、 CC-APSA算法及NCC-APSA算法在收敛速度、 均方误差和跟踪能力等方面的性能. 第2部分则验证改进型凸组合仿射投影符号算法在有双端讲话干扰的线上会议系统中的AEC性能.
本节采用两种不同类型的远端输入信号进行仿真, 8 kHz采样频率, 16 bit量化. 输入信号如图2是由零均值高斯随机信号通过AR模型T(z)=1/(1-0.7z)产生, 信噪比SNR=30 dB. 图3是仿真中系统辨识采用的两种不同单位脉冲响应, 左边是截断长度为256阶的汽车单位脉冲响应, 右边是会议系统中常见的1 024阶单位脉冲响应. 两种脉冲都不属于典型的稀疏信道, 稀疏度分别为0.52和0.32. 衡量算法性能的指标为归一化均方偏差(Normalized Mean Square Deviation, NMSD)[23], 用于度量自适应滤波器与目标系统的逼近程度, 即回声抑制能力, 其定义如下:
图2 输入高斯白噪声信号
图3 系统辨识
(21)
归一化均方偏差包括稳态误差和收敛速度两个跟踪性能, 稳态误差越小, 代表回声抑制效果越好, 而收敛速度代表算法需要多少次迭代才能达到理想的回声抑制效果. 本文所有仿真曲线均是通过 50 次独立实验求平均值获得.
4.1.1 稳态输入信号的算法性能对比
输入图2中自回归模型下的高斯白噪声, 期望信号由图3的真实单位脉冲响应产生, 无输出噪声.
作为第一步, 本文仿真了APA算法、 APSA算法、 CC-APSA算法和NCC-APSA算法在自回归模型下的跟踪性能, 图4和图5分别展示了L=256和L=1 024两种系统辨识的情况. 实验结果表明, 所提出的NCC-APSA算法具有优秀的收敛速度和稳态误差, 当滤波器大小L=256时, CC-APSA算法和NCC-APSA算法无论是收敛速度还是稳态误差都好于APA算法、 APSA算法. CC-APSA算法和NCC-APSA算法收敛速度相似, 有几乎相同的稳态NMSD, 都是大约900次迭代后开始收敛. 当L=1 024时, 各算法性能均有不同程度的下降, 算法无法达到900次迭代的稳态, 但是可以看出CC-APSA算法跟踪性能略微优于NCC-APSA算法.
图4 相关自适应算法性能比较(汽车脉冲响应)
图5 相关自适应算法性能比较(会议系统脉冲响应)
4.1.2 脉冲噪声模型下的算法性能对比
图6 不同脉冲噪声水平下算法跟踪性能
图7 相关自适应算法待辨识系统突变的性能比较
4.1.3 语音输入信号的算法性能对比
语音由于具有非平稳特性和频谱范围大的特点而非理想的脉冲响应激励信号[25], 在实际应用场景中, 输入信号往往是语音信号而非高斯白噪声, 所以本文采用真实语音信号进行仿真实验, 材料取自一段中文男声, 具有10~30 ms的准稳态特性及高相关性. 本文对NCC-APSA算法使用语音信号作为输入信号进行了对比实验, 分别采取图4所示的两个单位回声脉冲响应进行滤波. 对于这两个实验, 本文都添加一个信噪比为50 dB的高斯白噪声成分. 图8和图9分别显示了长度为L=256的汽车系统和长度为L=1 024的线上会议系统的结果. 与APA、 APSA和CC-APSA算法相比, NCC-APSA算法在暂态和稳态状态下都具有良好的AEC性能.
图8 语音输入下相关自适应算法跟踪性能(汽车脉冲响应)
图9 语音输入下相关自适应算法跟踪性能(会议系统脉冲响应)
为了进一步验证NCC-APSA算法的性能, 本文采用真实语音信号进行线上会议系统的回声消除实验, 分别在两个不同房间进行音频数据采集. 两个房间分别配置了不同的普通家具家电, 发送室大小约为4.35 m×3.2 m×2.8 m(L×W×H), 接收室大小约为3.8 m×2.6 m×2.5 m(L×W×H). 用于语料采集的器材包括电脑、 麦克风和扬声器等, 扬声器和麦克风分别摆放在电脑两侧, 且两者距离0.45 m左右. 电脑摆放在中间负责数据处理, 麦克风录制远端语音信号, 远端信号经过房间的回声信道形成回声后被麦克风拾取, 同时被拾取的还有近端信号和环境噪声(图10).
图10 单通道AEC软、 硬件实验设置
近端讲话的语音内容是一段中文男声“园林采用新中式建造手法……”, 语音数据的采样率设置为8 000 Hz, 根据房间实际脉冲来选择截断长度, 确定自适应FIR滤波器阶数L=1 024阶. NCC-APSA算法处理结果如图 11所示, 左边是近端语音信号(长度设置为400 000)和双端讲话语音的时域波形图, 语音信号在迭代次数为156 800时加入双讲语音, 其余设置为0, 无双端对讲影响. 图11右侧从上往下分别是麦克风信号和回声消除后的输出信号时域波形图. 从图11中可以看出, NCC-APSA算法可以有效地滤除回声干扰噪声, 听感方面的回声抑制效果也很好, 工程实践中具有很高的实用价值.
图11 信号时域波形图
针对线上会议系统中存在的双端讲话干扰和脉冲噪声问题, 本文提出一种适用于线上会议系统的改进型仿射投影符号算法. 仿真结果表明, 该算法可以有效克服线上会议系统中的双端对讲干扰和脉冲噪声干扰, 而且依旧保持良好的跟踪性能. 尽管本文算法在一定程度上改善了算法性能, 但是没有考虑稀疏信道下的性能优化, 而且计算复杂度依然较高, 不利于实际应用中推广. 因此, 如何利用信道的稀疏先验特性, 进一步开发适应稀疏信道的低复杂度算法是下一步研究的重点工作.