回声消除在voip中的应用
回声消除在VOIP中的应用 摘要
本文介绍了回声消除产生及消除的原理和算法,阐述了回声消除对VoIP网络的意义。并在DSP芯片上实现了一个基于频域的自适应滤波器的回声消除算法,对测试结果进行了分析。
关键词
声学回声消除;VoIP;G.168标准
前言
VoIP(Voice over IP)业务利用Internet网络传输语音数据,与传统的PSTN网络相比,具有:成本低、网络带宽利用率高、可集成多媒体业务等优势。
由于VoIP在网络采用分组交换传输语音数据,因此,网络带宽和编解码性能制约了通话质量。在网络会议中,网络延时大或编解码性能低等原因会造成语音数据的延迟,会议用户收听到自己的声音。这个声音是由对端麦克风从附近的扬声器拾取的,会对语音传输造成干扰,这就是通常所说的声学回声。
因此,在VOIP通话过程中,为提高VOIP的通话质量,有必要加入回声消除的功能,在将声学回声从语音数据中消除。
1. 回声消除的原理
2.1 回声产生原理
根据通话过程中的回声产生的源,可将回声分为电学回声和声学回声。电学回声是在传统的电话交换系统中,由于交换电路的阻抗不匹配产生的。声学回声是由设备的音频数据采集系统接收了本设备发声系统输出的音频信号,这种声音理论上是不应该存在的。
音频输出系统输出的声音经过一定的途径回馈到本设备的音频数据采集系统,这些路径叫做回声路径。回声路径可将回声分为直接回声和间接回声。直接回声是指回声从音频输出系统经过音频媒介(通常是空气),直接回馈到音频采集系统。这种回声得耗时最小,只取决于设备音频采集系统和音频输出系统之间的空间直线距离。间接回声是指音频经过周围障碍物(例如墙、桌椅等)的一次或多次反射后,回馈到音频采集系统。这种回声的回声路径与设备周围的环境有关系,因此不确定性和复杂度较高。其主要特点是回声路径冲激响应变
化范围大,变化快,冲激响应持续时间长,一般在50,300 ms。这使得自适应建模滤波器的阶数很高,因而成为语音通信系统回声的主要难题[朱灿彬,毛玉泉,李晓楠,等. Vo IP 回声消除算法研究[J ] . 舰船电子
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
, 2007 , 27 (4) :29232 ] 。
3.1 回声消除原理
声学回声消除的基础是,音频输出系统输出的音频和它产生的多路径回声具有相关性。自适应回声消除基本思想是,预估计回声路径的特性参数,模拟出回声信号,在音频采集系统采集的音频信号中减去估计的模拟回声。
图1表示了声学回声消除的原理图。
x(n)x’(n)u(n)+Σ音频采集
-r’(n)通话远端r(n)通话近端自适应滤波器
y(n)音频输出
障碍物
图1: 回声消除的原理图
在图1中所示回声消除的原理,y(n)代表远端来的音频信号。r(n)表示本端设备的音频输出系统输出的音频信号经一系列回声路径后,回馈到音频采集系统的回声信号,r(n)与y(n)存在一定的相关性。x(n)表示本端会议发言人的音频输入信号,x(n)和r(n)混在一起后经音频采集系统输入到设备中形成x’(n),即x’(n) = x(n)+r(n)。自适应滤波器输出r’(n)用来模拟实际环境中的回声r(n)。
回声消除器的目的是要将r(n)从x’(n)中消除掉,实现只有x(n)信号的传递效果。经过回声处理后,本端设备发送给远端设备的音频信号为u(n)。但是由于回声路径的不确定性,回声r(n)并不是一个可以准确估计的值,理论上,回声消除器要达到x(n)=u(n)的效果,即模拟回声r(n)与实际回声r’(n)的误差e(n)趋近于0的目的。e(n)的计算方法如下式所示:
e(n),r(n),r'(n)
2. 回声消除相关算法
自适应滤波器
回声消除的一个重要算法是自适应滤波器。通常采用的算法是归一化最小均方
(Normalized Least Mean-Square,NLMS)算法。最小均方算法使用误差梯度来调整更新自适应滤波器的参数,具有算法速度快、计算量小,稳定性较好的特点。
NLMS自适应滤波器的结构图如图2所示,H(z)传递函数表示回声路径的特性,自适应滤波器就是要调整滤波系数,使构造的传递函数H’(z)尽量接近H(z),才能使误差信号e(n)接近于0。NLMS的具体算法如下。
x(n)
r(n)回声通道y(n)e(n)ΣH(Z)
自适应滤波器r’(n)
H’(z)
图2: 自适应滤波器原理图
自适应滤波器的输出r’(n),由下式来给出:
N,1
r'(n),a(k),y(n,k),k,0
TT其中N是NLMS的滤波器阶数。A = [a,a,……,a],是滤波器的系数矢量。Y=[y, 01N-10y, ……, y是滤波器在第n时刻的输入信号矢量。 1(n-N+1)]
假设此时为远端模式,即近端的语音信号x(n)为0。因此消除器输出的误差信号e(n)的表达式为:
e(n),r(n),r'(n)
若采用归一化最小均方差(NLMS)的方法来调整自适应滤波器的系数,滤波器的系数矢量可按照下式来调整:
en A,A,,,,Yn,1nn()Pn
ρ的值越大,滤波器收敛上式中,ρ是步长因子,是一个常数,满足关系式0<ρ<2。
越快,但误差也越大,ρ越小,收敛速度也越慢。P(n)是n时刻输入的信号矢量y(n)的短时平均功率,按照如下的方法计算:
2 P(n),(1,,)P(n,1),,|y(n)|
MDF算法[Soo J S ,Pang K K. Multidelay Block Frequency Domain Adaptive Filter [J]. IEEE
Trans. on Acoust , Speech , Signal Processing ,1990 ,38 (2) :3732376.]
NLMS计算复杂程度随滤波器的阶数呈线形增长。因此可以将计算在频域进行,引入快速傅立叶变换(FFT)。块频域自适应滤波器(Multidelay Block Frequency Domain Adaptive
Filter,MDF)算法相当于对每一个频率使用NLMS 算法。
在频域滤波之前, 将N阶FIR滤波器在时域上分成N/P段, 每段有P个系数:
w[pP],,N,,w(n),??,p,0,1,??,,1 p,,P,,w[(p,1)P-1],,
p为段序号。补零后变换到频域,如下式所示:
w(n),,p W(n)F,p,,0M,P,,
F是M阶傅立叶变换矩阵,n是迭代号。MDF的一次迭代分如下几步: 1.对参考信号y(n)分段作FFT变换
,,y[(n,1)L,pP,M],,,,N,, Y(n),diagF??,p,0,1,??,,1,,p,,P,,,,y[(n,1)L,pP,1],,,,
2.分别对各段数据作频域滤波,累加后作FFT逆变换,,并只取L点为有效的线性卷积结果,得到的是估计信号r’(n)。
N/P,100,,M,L,1,,r'(n)FY(n)W(n) ,,pp,,0Ip,0L,,
3.将估计信号r’(n)从回声信号x(n)中去除,得到残差信号。
e(n),x(n),r'(n)
其中:
x(nL),,0,,M,L,,x(n),,xn,?? ,,,,dn,,,,x(nL,L,1),,
4.计算子带步长。μ是全局步长,γ是很小的数,作用是防止求倒数时数据溢出。
,1N/P,1,,T,,,,,,(n)diag,{(n)},Y(n)Y(n),I ,ppM,,p,0,,5.调整各滤波器系数。
,1*WnWnFGFnYnFen(,1),(),,()()(),ppp
Np,0,1,??,,1p
语音状态检测
由自适应滤波算法的分析可知,自适应滤波进行系数收敛是基于x(n)=0的假设。在x(n)?0时,滤波器的系数更新会使滤波器的效果恶化,滤波算法的收敛性也不能保证,因此,需要在系统运行时控制滤波器的工作。在实际中,通过检测语音通话的模式来实现对滤波器
参数更新和收敛的控制,也称为双端发声检测(Double Talk Detect, DTD)。
语音检测的主要功能是控制自适应滤波器的功能和系数更新。在网络会议中,对每个终端的设备来说,语音状态可分为远端模式、近端模式以及双端模式。在这里介绍采用短时功率估计的方式来进行语音模式检测的方法[IP 电话回声消除器的
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
及其DSP 实现,通信技术与设备,周国强 黄本雄,吕谦,Vol29,No3, 2003]。
在远端模式下,近端用户处于静音状态,即x(n)=0,而远端用户出于音频活跃状态,即y(n)?0。这时设备的音频采集系统采集到的音频信号是回声r(n),这时候自适应滤波器的应该处于滤波状态,并且自适应滤波器的系数处于更新状态。远端模式应该满足下式。
y_vshort_power + X_MARGIN > x_vshort_power
其中,x_vshort_power 表示近端信号的较短窗功率估计值;
y_vshort_power 表示远端信号的较短窗功率估计值;
X_MARGIN 阈值常量。
在近端模式下,近端用户出于音频活跃状态,远端用户处于静音状态,即x(n)?0,y(n)=0。这时候设备的音频采集系统采集到的音频信号是近端的语音,因此不需要进行回声滤波,这时候的自适应滤波器应处于禁止状态,滤波器系数也不进行更新。近端模式应满足下式。
x_vshort_power +X_MARGIN > x_vlong_power
其中,x_vshort_power表示近端信号的较短窗功率估计值;
x_vlong_power表示近端信号的较短窗功率估计值;
X_MARGIN是阈值常量。
在双端模式下,远端和近端用户同时处于语音活跃状态,即x(n)?0,y(n)?0。此时,近端的设备采集到的音频信号中带有回声信号,因此滤波器需要进行滤波功能,但是系数处于禁止更新状态,防止本端的音频造成滤波器系数发散。双端模式满足下式。
err_vshort_power > C × x_vshort_power +D
其中,err_vshort_power表示误差信号的较短窗功率估计值;
x_vshort_power表示近端信号的较短窗功率估计值;
C是系数常量。
D是阈值常量。
残余回声消除
在回声消除器的应用中,回声经过了回声消除器的处理之后,还会有一些残留的回声,这些回声幅度虽然不至于影响语音的传输,但是会使音频信号的舒适度降低,因此在自适应滤波之后还需要一个非线性处理(Non-Linear Process,NLP)模块。
残余回声消除的计算方法如下:
1.在语音状态处于远端模式时,估算y(n)的功率Py。此模式时可认为输入的x(n) = r(n),估算输入的回声r(n)功率Pr。则回声经过了回声路径后的损耗率λ = Pr/Py;
2.在自适应滤波之后,估算自适应滤波器输出后,残余回声e(n)的功率Pe,则滤波器的性能σ = Pe/ Pr;
3.在其他语音状态下,估算音频采集系统采集到的回声信号为λ*y;
4.可估计经过自适应滤波器后的音频信号中残余回声为:y*λ*σ
5.计算近端音频采集到信号与残余回声的比为
6.当000大于一定的门限时,可认为有残余回声夹杂在输出的音频信号中,可将此子带
的信号抹去,而以白噪声代替。
在本计算过程中,需要注意的是,λ、σ需要在远端模式下进行估算,以得到比较精确的结果。[带残余回声处理的回声消除算法,Journal of Data A cquisit ion & P rocessing,张伟彬,刘光军Vo l. 23 No. S Sep. 2008]
3. 回声消除在VOIP网关中的实现
本文采用了MIKET公司的回声消除算法,该算法基于MDF,对音频信号进行子带分析、滤波处理,最后将各子带合成为音频信号。
算法结构
算法实现的结构图如下图所示。双端检测(Double Talk Detect, DTD)模块估算x(n)和y(n)的短时功率,判断当前语音通话的模式。子带分析模块将x(n)和y(n)分解为多个子带,子带合成模块将各子带的信息重新合成为x(n)和y(n)。滤波器组模块,将各子带信号进行自适应滤波,得出最佳收敛参数。非线性处理模块进行残余回声消除,加入舒适噪声等。缓冲模块用于缓冲远端的语音参数,其功能是延时给自适应滤波器提供参考语音的参数的作用,在回声尾声比较长的环境下,该模块保证了近端回声与远端语音的同步,提高回声消除的效果。
u语音输入子带分析子带合成非线性处理x’
通通话话双端检测自适应滤波器缓冲远近端端
yy语音输出子带合成子带分析
图3 回声消除算法结构图
算法
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
算法的流程图如下图所示。算法流程为:
1回声消除器接收到近端语音信号x’和远端语音信号y后,首先对x’和y进行语音状态检测,判断此时的语音状态;
’和y进行子带分解; 2对x
3根据语音状态决定是否要对输入的x’进行滤波,以及滤波器系数是否要更新;
4由子带合成y信号,通过扬声器输出;
5对通过滤波器后输出的u信号进行非线性处理:消除残余回声、加入舒适噪声等。
通话开始
双端语音检测
x和y子带分析
NNN双端通话,远端通话,近端通话,
YYY
滤波器停止工滤波器工作,滤波器工作,作,参数停止x和y子带分析参数停止更新参数更新更新
x和y子带合成
通话终止
图4 回声消除算法流程图
在VOIP网关中的实现
回声消除算法在VoIP网关系统结构如下图所示。VoIP网关连接PSTN、IP等网络连接。在PSTN网络与VoIP网络的用户进行会议通信时,需要在VoIP网络的会议终端进行回声消除。而在PSTN网络,为减少不具有回声消除功能的电话终端造成的回声,需要在PSTN网络接口一端进行回声消除。
在PSTN网络的接口端,首先进行语音解码,将语音码流解为16位或8位语音线性码,然后将该线性码流输入到EC模块。同时,VoIP网络来的码流解码为语音线性码流,输入到VoIP网关的回声消除器。在VoIP网关内实现多路的回声消除,需要实现回声消除代码的可重入性,对每个通道的回声消除参数和上下文数据进行单独保存,以便在通道切换时保存每个通道的当前状态信息。
VOIP网关会议终端
音频流音频流
ECPSTN网络ECVoIP网络
图5 VoIP网关中的回声消除应用
本文在德州仪器(TI)公司的TMS320DM642芯片上实现了该算法。语音数据的采样
3率为8KHz,16位采样。输入的模拟回声,模拟场景为小型会议室(大约15m),尾声延时为80ms,算法复杂度为23MIPS。本算法尾声延时在每增加80ms情况下,复杂度增加9MIPS。 测试结果。
G.168标准测试
电信联盟的G.168标准规定了特定的复合信号源(Composite Source Signals, CCS),来对回声消除器进行测试。该信号可以仿真语音信号的特征,可用来进行测量回声消除器对语音信号的处理能力。【ITU T 1G1168, Compo site Source Signals fo r Test ing of Speech Echo
Cancellers: Signal, Descrip t ion and A nalysis119971】
表1 G.168性能测试结果
测试项目 G.168标准(dB) 测试结果(dB) 单端模式下回声损耗 >30 32
单端模式下收敛速度 >27 34
双端模式下回声残余误差 <10 3
模拟回声处理
本文对所实现的回声消除算法进行了仿真测试。采用模拟回声的方式来进行测试。分别使用两个语音文件,图 表示仿真测试结果。
图6a是远端的参考语音信号,图6b是本端的发言者的语音信号,图6c是图6a产生的-9dB回声信号与图6b的语音信号的叠加结果。图6c,T1段是远端模式,T2段是双端模式,T3段是近端模式。图6d是模拟回声的测试的波形结果。
dB
-9
-?
-9
05000sample
图6 a
dB
-3
-6
-9
-?
-9
-6
-305000sample
图6 b
dB
-3T1T2T3-6
-9
-36-?-36
-6
-3
05000sample
图6 c
dB
-3
-6
-?
-6
-3
05000sample
图6 d
图6 a表示远端语音信号在近端的输出y(n),图6 b表示近端发言者的语音,图6c表
示近端设备采集到的语音信号x’(n),模拟对端音频信号经过回声路径后被拾取到设备中的
回声信号。图6c表示加入了模拟回声的本端语音信号。图6d表示本端语音信号经过回声消
除后的输出语音信号。
经过测算,回声消除器输出的音频信号中的回声信号比输入的回声信号衰减41dB,比
远端信号y(n)衰减32dB,因此符合G.168/G.165规定的精度要求。
4. 结束语
VoIP网络是通信发展的方向之一,回声消除在VoIP通信网络中能够减少回声带来的语音传输干扰,提高通话质量。测试结果表明,本文实现的回声消除器,能够有效消除回声信号,提高语音传输的质量,符合ITU-G.168的标准,在VoIP网络中有较强的实用性。 5. 参考文献
基于分段块频域自适应滤波算法的长延时回声消除, 数据采集与处理, 2009,24(z1)