APP下载

基于信号包络和互相关的双端通话检测算法研究

2020-08-04张正文饶鼎巩朋成涂斯纯

现代电子技术 2020年3期

张正文 饶鼎 巩朋成 涂斯纯

摘  要: 声学回声消除(AEC)系统依赖于自适应滤波器的回声路径估计,当麦克风接收的信号存在回声和近端信号时,可能出现模拟回声路径的自适应滤波器发散,导致回声消除性能下降,严重时影响双端通话质量。一个成熟的声学回声消除器应该包含有双端通话检测算法,针对该问题,提出一种准确度高、性能稳定的基于信号包络检测(Env)和归一化互相关(NCC)估计相结合的双端通话检测(DTD)算法。该算法先使用远端信号与麦克风信号的能量包络来判断双端通话是否发生,当包络检测不能准确地判断双端通话时,再使用远端信号与麦克风信号的互相关估计对双端通话进行最终判断,保证双端通话检测的准确性。仿真实验表明,提出的算法可以准确判断双端通话的开始与结束,并且受回声路径变化的影响较小,提升了AEC系统的性能。

关键词: 双端通话检测; 声学回声消除; 自适应滤波; 回声路径估计; 包络检测; 互相关

中图分类号: TN912.3?34                        文献标识码: A                         文章编号: 1004?373X(2020)03?0022?05

Double?talk detection algorithm based on signal envelope and cross correlation

ZHANG Zhengwen, RAO Ding, GONG Pengcheng, TU Sichun

(School of Electrical and Electronic Engineering, Hubei University of Technology, Wuhan 430068, China)

Abstract: The acoustic echo cancellation (AEC) system relies on the echo path estimation of the adaptive filter. When the signal received by microphone has echo and near?end signal, the adaptive filter divergence of the analog echo path may occur, resulting in degraded echo cancellation performance, which will affect the double?talk quality in severe cases. A mature acoustic echo canceller should be based on double?talk detection algorithm. In view of this, an accurate and stable double?talk detection (DTD) algorithm based on the combination of signal envelope detection (Env) and normalized cross correlation (NCC) estimation is proposed. In the algorithm, the energy envelope of the far?end signal and the microphone signal is used to judge whether the double?talk occurs or not. When the envelope detection fails to judge double?talk accurately, cross?correlation estimation of the far?end signal and the microphone signal is adopted to perform the final judgment of the double?talk to ensure its accuracy. The simulation experiments show that the proposed algorithm can accurately judge the beginning and end of double?talk, and is less affected by the change of echo path, which improves the performance of AEC system.

Keywords: double?talk detection; acoustic echo cancellation; adaptive filtering; echo path estimation; envelope detection; cross correlation

0  引  言

在視频会议系统、IP对讲通话系统中,扬声器播放的声音经过多种路径传播后被麦克风拾取,并传回到远端形成声学回声,影响通话质量。因此,可以使用声学回声消除(Acoustic Echo Cancellation,AEC)技术来消除声学回声。

在声学回声消除系统中,自适应滤波器用于消除远端语音的回声,任何近端信号的存在都会影响其收敛[1?2]。在双端通话期间,由于远端语音信号与近端语音信号的不相关特性,近端信号表现为一个很强的干扰信号,使得自适应滤波算法性能下降,甚至出现自适应滤波器发散,导致讲话人听到自己的回声,这是非常糟糕的体验[3?4]。

因此,需要双端通话检测(Double Talk Detection,DTD)算法准确地判断双端通话的开始与结束,避免滤波器的发散,保证双端通话的质量。根据DTD的检测结果,如果不存在双端通话,自适应滤波器继续更新其系数,否则,自适应滤波器停止更新。

自从第一种基于自适应滤波器的回声消除器的发展以来,已经提出了多种方法来检测双端通话。如能量比较法、相关性比较法、包络检测(Envelope Detection)法、过零率检测法、语音特征提取法和估计残余误差信号的基频方法等。

能量比较法简单易行,但是误报率高[5]。包络检测法是基于能量比较法的改进,降低了误报率[6]。低延时的检测算法也是在能量比较法上的改进,减少了检测延时[7]。互相关比较法利用远端信号与误差信号之间的互相关向量来构造检测统计量[8]。随后在互相关比较法上做了一些改进,经过改进的归一化互相关(Normalized Cross Correlation)双端检测算法[9?11]在性能上有所提升,但是滤波器初始收敛速度慢,当回声路径改变时不能快速适应新的回声路径。过零率检测法[12]计算复杂度低,但只適用于固定环境,在实际环境中误报率高。基于奇异值分解和基于语音特征提取的DTD算法[13?14]性能优于经典的能量比较法和归一化互相关算法。但是存在计算复杂度高,不利于实际应用的问题。通过自适应二阶陷波滤波器估计残余误差信号的基频(FFE)双端通话检测算法[15]具有较好的检测性能,但是计算量大,占用内存大,在回声路径改变时,适应速度慢。

以上算法在某些环境中都可以独立地进行双端通话检测,但是在实际复杂环境中其检测性能受环境因素的影响较大,检测性能下降。当近端环境噪声过大或近端语音信号较小时,会出现误判。

针对以上问题,本文提出一种基于信号包络检测和互相关估计相结合的DTD方法,可以正确判断近端语音的开始和结束,同时使误判率较低。

1  双端通话检测

DTD作为AEC系统中不可缺少的一部分,在为AEC选择DTD算法时,性能和速度是很难兼顾的。

下面简要介绍DTD算法的基本工作流程:

1) 利用AEC系统中的各种信号,如远端语音信号、麦克风信号、误差信号等,构造一个检测统计量[ξ]。

2) 将检测统计量[ξ]和一个预先设定的阈值[T]相比较。一般,如果[ξ

3) 一旦检测到双端通话,检测将停止一个时间段,与此同时,自适应滤波器将停止更新。

4) 如果检测统计量在超过检测的时间段内都满足[ξ≥T],则自适应滤波器继续更新,直到重新检测到[ξ

2  改进的双端通话检测算法

在本节中将信号Env和NCC估计算法相结合形成一种新的DTD方法,提出的DTD方法框图如图1所示。

先使用远端信号[x(n)]和麦克风信号[y(n)]进行信号包络检测来判断双端通话,再采用[x(n)],[y(n)]两个信号计算互相关来减少双端通话检测误差。在计算信号能量包络中信号能量是变化的,采用平均值计算有一定的误差,本文考虑到信号包络上升和下降的两种情况分别计算,以提高系统的精确度。[x(n)]的信号包络可以使用以下公式计算:

式中,[λ]是遗忘因子,它定义为包络检测器对信号幅度的快速变化做出反应的速度,用于精确估计信号能量,[0.85<λ<0.99]。同样,其他信号的包络也可以用这个公式计算。

麦克风的输入信号[y(n)]包括近端语音信号[s(n)]、回声信号[d(n)]、近端噪声信号[b(n)]。麦克风输入信号可表示为:

假设回声信号的能量与远端信号相比较低,在双端通话期间,麦克风信号的能量大于远端信号的能量。可得信号包络不等式:

在单边通话期间,可近似得到:

因此,双端通话检测应该基于回声和噪声的信号包络。回声信号[d(n)]可以使用自适应滤波器产生的回声估计[d(n)]来代替。如果噪声水平保持在合理的范围内,则背景噪声的包络可以通过恒定的阈值[ε]来估计。在双端通话期间,可得到不等式:

但是,这个判定标准仅适用于自适应滤波器已经收敛的情况。在自适应滤波器系数未完全收敛时,可以采用与远端信号[x(n)]成比例的近似回声测量来判定双端通话,可得到不等式:

式中,[?(n)]是滤波器系数的发散度量,[?(n)≥0]。在系统工作中,[?(n)]应该随着滤波器收敛而降低并在收敛期间接近零。滤波器系数的梯度向量的范数可以满足这个条件,因为它随着自适应滤波器收敛而几乎单调下降。

在某一时刻,自适应算法更新时,滤波器系数[w(n)]随着[Δw(n)]而改变,可得到:

式中:[α]是比例常数;H是共轭转置。

在频域自适应滤波器的情况下,根据帕赛瓦尔定理可知,一个信号能量恒等于此信号在完备正交函数集中各分量能量之和。因此,[w(n)]可以使用它的DFT之和代替。计算公式如下:

式中:[i=0,1,2,…,n];[j=0,1,2,…,n];Re表示实数部分;Im表示虚数部分。

因此,可得到判定函数如下:

将判定函数[ξEnv(n)]与预先设定的阈值[T]进行比较,[T]略小于1,如果[ξEnv(n)>T],判定发生双端通话。

从理论上来说,在双端通话期间,麦克风输入信号能量大于远端信号能量。但是在实际应用环境中,室内脉冲响应和回声路径是未知的,当回声的延迟较长将对双端检测系统有影响。在这种情况下,麦克风信号可能低于远端输入能量,导致错误的双端通话判定。虽然这种情况很少发生,但是一旦发生,可能导致滤波器发散而降低系统性能。

为了解决这种问题,将NCC算法加入DTD算法中。NCC是一种常用的基于相关性的算法,利用远端信号[x(n)]与麦克风信号[y(n)]来构造检测函数:

其中,[rxy=E[x(n)y(n)]=Rxxh],[h]是回声路径;[σ2y]是麦克风信号的方差,且有:

式中:[Rxx]是[x(n)]的自相关矩阵;[σ2s]是近端语音信号的方差;[d(n)]是回声信号;[s(n)]是近端语音信号。当没有近端信号存在时,判定函数[ξNCC(n)=1],当存在近端信号时,[0<ξNCC(n)<1]。

在双端通话期间,麦克风信号包含近端语音,因此相关系数会降低。将[ξNCC(n)]与预先设定的阈值[K]进行比较,[K]略小于1,如果[ξNCC(n)

当信号包络检测法无法准确地判断双端通话的发生时,NCC将作为最终的判断。最终的判定函数如下:

当[η(n)=1]时则判定为发生双端通话,滤波器停止更新,否则,判定为单端通话,滤波器继续更新。

3  算法仿真

由于提出的DTD方法使用自適应滤波器产生的回声估计[d(n)]来判断双端通话,其性能取决于自适应滤波器的失调量。

NLMS算法是广泛使用的自适应算法,但其失调量随滤波器长度而增加,而频域自适应滤波器(FDAF)使用FFT算法,具有非常低的失调量并且比NLMS算法更快,因此,FDAF更适合在嵌入式系统中实现所提出的算法[16?17]。

在计算信号包络和NCC中,式(1)中的 [λ=0.996],式(7)中的比例常数 [α=0.5]。使用[ε]估计恒定噪声,[ε=3.1×10-3],Env的判断阈值[T≈1],根据实验经验,NCC的判断阈值[K=0.34]。

仿真以Matlab为平台,使用两段不同的语音作为远端信号和近端信号,时间长约15 s,采样率为8 kHz,SNR约为30 dB。近端语音与远端语音的功率比在-30~10 dB的范围内变化,在此范围内确定漏检率[Pm]和误报率[Pf]。[Pm]和[Pf]是判断DTD准确性的两个主要参数。在这两个参数中,[Pm]的值越低越好,因为双重通话的遗漏检测会导致自适应滤波器的发散,进一步影响语音信号的质量。

漏检率是指在DT模式下,[η=0]的概率;误报率是指不在DT模式下[η=1]的概率。定义式如下:

式中:[Γ0]表示存在双端通话;[Γ1]表示不存在双端通话。

下面将提出算法的性能水平与Geigel和NCC算法的性能水平进行比较,如图2,图3所示。

从图2可以看出,与Geiel能量比较法和NCC方法相比,在低NFR情况下,本文提出的Env与NCC结合的算法漏检率最低。漏检率随着近端信号功率的提高而降低,在NFR大于0 dB后,漏检率最低。从图3可以看出,所提出算法的误报率要高于NCC算法,但比Geigel算法要低很多,随着NFR的增加,误报率始终低于4%。在实际情况中,误报率仅在非常短的时间内冻结自适应滤波器的权系数更新,因此不会造成滤波器发散。

在NFR为-10 dB,发生双端通话的情况下,进行回声消除实验。图4是近端语音信号、远端语音回声信号和近端麦克风接收到的信号,在2 s,4 s,6 s,9.5 s,11.5 s处发生双端通话。图5给出了三种DTD算法下的回声消除实验结果。

从图4,图5可以看出,Geigel算法在检测时容易出现误检情况,导致残余回声较多,在11.5 s时,近端语音信号较小,NCC算法出现漏检情况,导致近端语音信号也被抑制,没有保证完整的双端通话。本文提出的Env与NCC结合的算法则能保持良好的检测性能,保证完整双端通话的同时降低误检情况,从而提升了回声消除性能。

4  结  语

本文基于远端和麦克风信号的包络检测和互相关估计,提出一种新的DTD算法,并通过仿真实验验证了其性能。与传统方法相比,本文提出的算法提高了DTD的准确性及稳定性,提升了AEC系统性能,可以更好地应用在实际环境中。双端通话的某些部分中出现的小检测延迟将在未来的工作中得到改进。

参考文献

[1] GAY S L, BENESTY J. Acoustic signal processing for telecommunication [M]. [S.l.]: Springer, 2000.

[2] IKRAM M Z. Blind source separation and acoustic echo cancellation: a unified framework [C]// 2012 IEEE International Conference on Acoustics, Speech and Signal Processing. Kyoto: IEEE, 2012: 1701?1704.

[3] GUPTA V K, CHANDRA M, SHARAN S N. Acoustic echo and noise cancellation system for hand?free telecommunication using variable step size algorithms [J]. Radio engineering, 2013, 22(1): 200?207.

[4] KUO S M, LEE B H, TIAN W. Real?time digital signal processing implementations and applications [M]. 2nd ed. Chichester, United Kingdom: John Wiley & Sons, Ltd., 2006.

[5] DUTTWEILER D L. A twelve?channel digital echo canceler [J]. IEEE transactions on communications, 1978, 26(5): 647?653.

[6] SZWOCH G, CZY?EWSKI A, KULESZA M. A low complexity double?talk detector based on the signal envelope [J]. Signal processing, 2008, 88(11): 2856?2862.

[7] 袁红星,吴少群,郭立,等.一种低延时双端发音检测方法[J].计算机工程与应用,2012,48(17):139?142.

[8] YE Hua, WU Boxiu. A new double?talk detection algorithm based on the orthogonality theorem [J]. IEEE transactions on communications, 1991, 39(11): 1542?1545.

[9] BENESTY J, MORGAN D R, CHO J H. A new class of double talk detectors based on cross?correlation [J] IEEE transactions on speech and audio processing, 2000, 8(2): 168?172.

[10] 余力.一种计算复杂度低的双端通话检测算法[J].计算机工程与应用,2011,47(16):147?150.

[11] DAS V, KAR A, CHANDRA M. A new cross correlation based double talk detection algorithm for nonlinear acoustic echo cancellation [C]// TENCON 2014?2014 IEEE Region 10 Conference. Bangkok: IEEE, 2014: 1?6.

[12] IKRAM M Z. Double?talk detection in acoustic echo cancellers using zero?crossings rate [C]// 2015 IEEE International Conference on Acoustics, Speech and Signal Processing. Brisbane, QLD: IEEE, 2015: 1121?1125.

[13] HAMIDIA M, AMROUCHE A. Double?talk detection using the singular value decomposition for acoustic echo cancellation [C]// 2013 IEEE International Conference on Communications. Budapest, Hungary: IEEE, 2013: 4745?4749.

[14] HAMIDIA M, AMROUCHE A. Double?talk detector based on speech feature extraction for acoustic echo cancellation [C]// 22nd International Conference on Software, Telecommunications and Computer Networks. Split, Croatia: IEEE, 2014: 393?397.

[15] CECCSHI S, ROMOLI L, PIAZZA F. Multichannel double?talk detector based on fundamental frequency estimation [J]. IEEE signal processing letters, 2016, 23(1): 94?97.

[16] GIL?CACHO J M, WATERSCHOOT T V, MOONEN M, et al. A frequency?domain adaptive filter (FDAF) prediction error method (PEM) framework for double?talk?robust acoustic echo cancellation [J]. IEEE/ACM transactions on audio, speech, and language processing, 2014, 22(12): 2074?2086.

[17] HAYKIN S. Adaptive filter theory [M]. New York: Prentice Hall Inc., 1986.