VoIP声学回声消除算法研究.
VoIP 接入:回声问题与回声消除原理
VoIP 接入:回声问题与回声消除原理回声问题(一):回声的来源与特性在电信系统中,需要考虑两种回声。
一种是电学回声,由二四线混合电路产生。
另外一种是声学回声,由扬声器发出的声音经过某种途径传递到麦克风而产生。
在固网接入中,只需要考虑电学回声即可,下面是二四线混合电路的原理图。
当平衡阻抗与外线阻抗相等时,从四线输入端反馈到四线输出端的信号等于 0。
所谓外线阻抗,指的是从接入设备的用户端口看出去的等效阻抗。
等效阻抗包 含电话线与终端所形成的阻抗,还得考虑到电话线之间、电话线与信号地之间的相互作用。
这在电信的 112 测试标准中,有着详细的描述。
而平衡阻抗,由用 户端口电路提供。
如果平衡阻抗与外线阻抗差异较大,则会产生明显的回声,从而影响人的主观感受,甚至影响 modem 通信的质量。
在老的接入设备上不存在回声问题,这是因为回声对人的主管感受的影响不但与回声的大小有关,而且与回声的时延有关。
当时延很小时,回声不会对人的主 观感受带来影响,就像我们在房间里面说话,和在山谷路面说话,虽然都有较大的回声(在房间里更大),但主观感受完全不一样。
因为老接入设备用的是电 路交换,语音信号的时延很小,此时回声不但不会降低主观感受,反而作为“侧音”让说话者能够感觉到自己正在说话。
以上就是为什么老接入设备上,不需要 考虑回声造成的不良后果的原因。
回声问题(二):回声带来的问题1VoIP 接入:回声问题与回声消除原理VoIP 接入设备用 UDP 包来传递窄带信号, 考虑到语音包的打包以及 IP 交换网的时延, 回声的时延是相当可观的。
所谓窄带信号, 指的是经 8KHz 采样、 8bit A 率或 u 率量化的信号。
较大的时延使得回声对人的主观感受造成了不良影响,我曾经处理过一次“小灵通”接入与 VoIP 固网接入设备之间的电话回声问题,在电信网中如果不考虑回 声问题,确实会对用户造成不小的困扰。
回声造成的更大问题是,会严重影响 modem 通信。
VoIP回声消除算法研究
匹配造成 的 , 常影 响 比较小 。随着消 除 回声 技术 通
的发展 , 当前 回声消除研究的重点, 由“ 已 电学 回 声” 的消除 , 向了 “ 转 声学 回声 ” 的消除 。 声学回声指是设备 的一部分声音信号回馈到
为必然
对 于声学 回声 , 主要有 以下两 种消 除方法 : ( )回声 抑制器 1 回声抑制 器 是一 种 非线 性 的 回声 消 除 。它 通
过简单的比较器将接收到准备 由扬声器播放 的声 音 与 当前 话筒 拾取 的声音 的电平进 行 比较 , 以达 消
除 回声 的 目的。随着 高性能 的 回声 消除器 的 出现 , 回声 抑制 器 己很 少有 人使用 了 。
d( ) n 号与 回声 的估 计信 号 y( ) n 的最 小均 方误差 ( S 最小 化 。语 音 检测 器 的功 能是 通 过 计算 短 M E) 时能量来 确定三 种 状 态 : 近端 讲 话 , 端讲 话 和 双 远 端讲 话 。 ( ) 端讲话 时 , n 存在 而 X( ) 零 , 1远 U( ) n为 这
工作 模式 检测 器 组成 。 自适 应 回声 消除 器用 于 建 立 回声路 径 的模 型 以估 计 远 端 信号 可 能产 生 的 回 声, 并从 本地输 入信 号 中减 去该 估 计 的 回声 ; 工 而
收 稿 日期 :07年 1月 7 日 , 回 日期 :07年 3月 5日 20 修 20
7 07 ) 10 7
( 军 工 程 大学 电讯 工 程 学 院 空
西安
摘
要
阐述 回声 消除技术原理 , 介绍 自适应 回声 消除器 基本结构 , 分析两 类消除 回声 的基本算法 , 并提 出基 于两类
电话语音回声消除的研究
( ( I) (6) y I) =( x I) +( e I) !h 所以和式 ( 1) 相比, 没有 m (由于前 0 . 5 秒钟没有用户语音, 项) , 其傅立叶变换是 ( I) ( I) ( I) ( I) (7) Y =X H +E 因此说信道响应计算结果只是一个估计, 实际上得到的是 ( I) [E ( I) ( I) ] ( I) (8) h’ = IDFT /X +h 很显然在 h ( I) 为零的地方, 上式中的第一项还在起作用 . 不 过由于噪声部分所占比例不大, 才出现图 2 所示的现象, 即在 ( I) 不为零的时候, ( I) 的幅值出现一个凸起, 而在 h ( I) h h’ 为零时, ( I) 则表现为小幅值的波动 . 为了简化, 文中仍用 h’ ( I) 表示信道冲击响应的估计 . h 实验数据分析表明, 虽然每次通话的信道冲击响应不同, 但其序列长度却基本稳定, 大致在 80 ~ 100 范围内 . 从图 2 看 出, ( I) 的真正有效部分从中间某处 (设为 I0 , 即波形中凸起 h 的起始点) 开始, 这是因为交换机播出的提示语音有 I0 的信 道延迟 . 考虑到噪声对 h ( I) 的影响, 去掉延迟后可以得到更 然后 好的信道估计, 因此下一步把混合语音做 I0 点的移位, 再做二次反卷积, 完成信道估计 . 其中第一步的延迟估计也可
!
引言
电话语音系统是远程人机交互的一种实现方式, 随着语
"
"#!
信道估计算法
信号分析 在电话网二 / 四线转换处使用了混合变换器, 由于阻抗不
音识别技术的发展, 它有很大的应用空间, 如股票信息查询、 机票查询、 天气预报等, 此外我们正研究电话语音交换机也是 一个很好的实例 . 但是在人机交互过程中, 机器播放的提示语 音到达用户耳机后, 会掺杂到用户语音中一起返回计算机 . 这 将严重影响系统的语音识别率, 为了识别用户语音, 必须先把 提示音消除 . 在研究过程中, 使用电话语音卡作语音采集, 随卡有一个 回声抑制程序, 实验表明其对内线回声抑制较好, 但外线效果 比较差, 而且在消除回声的同时, 对有用信号影响也比较明
回声消除毕业论文
回声消除毕业论文回声消除技术在语音信号处理中起着非常重要的作用,它可以有效减少语音通信中产生回声的影响,提高语音信号质量和清晰度,在语音通信、语音识别和语音合成等领域得到了广泛应用。
本文主要介绍回声产生机制、回声消除算法、回声消除系统的实现以及回声消除算法的优化。
一、回声产生机制回声是由于语音信号从主讲话人到转接站或对方电话机,再由转接站或对方电话机回传到主讲话人处所产生的信号。
因此,对于从广义上来说,回声产生机制主要有以下两种形式:1. 音频输出设备回音当一个人在说话时,声音会被麦克风采集并被发送给远程其他人。
如果某些机器的音频输出设备出现了缺陷,那么他发出的声音就会反射回到他自己的麦克风中,所形成的信号就是回音。
它通常在通话质量差的情况下出现,可以通过降低麦克风灵敏度、调整输入和输出音量控制来缓解。
2. 时差回声时差回声是在语音通信中产生的最常见的一种回声情况。
时差回声是指语音信号从发射端(主讲话人处)传输到接收端(通讯对方)后,一部分信号在接收端的扬声器播放时,被捕捉到发射端的麦克风中得到的声音。
这种回声通常是由于音频播放设备和采集设备之间的时间延迟所导致的。
它通常困扰着网络电话、视频会议和网络游戏。
二、回声消除算法回声消除技术的基本思想是在通过麦克风采集到的原始语音信号中分离出回声信号,并将其移除以达到消除回声的目的。
常见的回声消除算法包括数字滤波法、时域自适应滤波法和频域自适应滤波法等。
1. 数字滤波法数字滤波法是采用数字滤波器对输入的语音信号进行滤波以减少回声的算法。
其基本原理是,通过计算相应的滤波器系数,将回声信号从输入信号中滤出。
不同的数字滤波算法可以采用不同的滤波器类型和滤波器系数来减少回声效应,其中卡尔曼滤波法和有限时滤波法都是常见的数字滤波算法。
2. 时域自适应滤波法时域自适应滤波法(TDAS)是一种基于统计模型的算法,适用于对采样深度低但有足够信号能量的信号进行处理。
TDAS算法利用交线性变换原理,将输入信号分解为线性和非线性两部分,进而消除回声。
移动设备VOIP实时通信软件中的回声延迟估算方法
移动设备VOIP实时通信软件中的回声延迟估算方法[摘要] 在VIOP通信软件中有一个严重影响通话质量的因素就是回声。
回声是指说话者通过通信设备发送给其他人的语音又重新又回到自己的听筒里的现象。
回声会对说话者产生严重的干扰,必须想办法消除或削弱。
一般,回声分为两种,即“电路回声”和“声学回声”。
“电路回声”可以通过硬件设备的合理设计而消除。
而“声学回声”由于其产生的环境复杂,不容易消除。
本文通过分析移动设备的声卡的参数设定和录放音数据的时序关系,总结出一套估算该类设备上声学回声延迟的方法,有效地提高了回声消除的效率和效果,为该类设备上设计VOIP 通信软件的回声消除模块提供了参考。
[关键词]回声;声学回声;回声延迟;回声消除器;采样率;重采样1引言在语音通信中,有一个很影响通话质量的因素就是回声。
回声就是指说话者通过通信设备发送给其他人的语音又重新又回到自己的听筒里的现象。
回声会对说话者产生严重的干扰,必须想办法消除。
一般,回声分为两种,即“电路回声”和“声学回声”。
“电路回声”可以通过硬件设备的合理设计而消除,在此不作讨论。
最复杂和最难消除的应该是所谓的“声学回声”。
“声学回声”是指远端用户的声音从听筒出来以后,经过空气或其他的传播媒介传到近端用户的话筒,再通过话筒录音后又重新传到远端用户的听筒中形成的回声。
当近端用户的放音音量比较大而录音设备和放音设备距离比较近时回声尤其明显。
“声学回声”受近端用户环境的影响,可能产生多路回声,包括直接回声和反射回声,各个回声的路径不同,延迟也就不同,因而难以消除(如图1)。
2声学回声消除器对于声学回声消除,常见的消除算法有2类,即回声抑制(acousticechosuppression)算法和声学回声消除(acousticechocancellation)算法。
回声抑制算法是较早的一种回声控制算法。
回声抑制是一种非线性的回声消除。
它通过简单的比较器将准备由扬声器播放的声音与当前话筒拾取的声音的电平进行比较,如果前者高于某个阈值,那么就允许传至扬声器,而且话筒被关闭,以阻止它拾取扬声器播放的声音而引起远端回声。
回声消除在voip中的应用
回声消除在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 ] 。
VoIP中一种基于WebRTC的回声消除改进算法
VoIP中一种基于WebRTC的回声消除改进算法姚力;刘强【期刊名称】《计算机科学》【年(卷),期】2017(044)0z1【摘要】回声现象是语音通信系统中的常见问题,一直困扰和影响着通信质量.提出一种基于WebRTC(Web RealTime Communication)开源框架的回声消除算法.该算法针对定点运算框架的局限性,采取浮点算法实现,提高了算法的效率和精度,同时还满足实时性要求.在移动设备上的仿真结果表明,所提算法在复杂度相当的前提下比原有算法有更高的回声返回损耗增益值,具备更好的回声消除性能.%Echo phenomenon is a common problem in voice communication system,which affects the communication quality.This paper presented an echo cancellation algorithm based on WebRTC (Web Real-Time Communication).As the fixed-point realization is limited,the algorithm uses floating-point computation to improve algorithm efficiency and accuracy,while maintains algorithm speed.The experimental results based on mobile equipments show that the proposed algorithm outperforms the original one on echo return loss enhancement with comparable complexity.【总页数】4页(P309-311,318)【作者】姚力;刘强【作者单位】浙江警察学院大数据重点实验室杭州310053;浙江警察学院大数据重点实验室杭州310053【正文语种】中文【中图分类】TN912.3【相关文献】1.VoIP回声消除中LMS改进算法的研究 [J], 李丽;石翠萍;李会2.一种改进的NLMS算法及其在回声消除中的应用 [J], 陈霞3.VoIP中一种信包丢失隐藏算法 [J], 谢青松;魏维;罗凯;闫玲博4.一种基于srTCM的令牌桶改进算法及其在FRTS中的应用 [J], 黄霞;李一兵5.WebRTC中一种基于DNN的噪声抑制算法的研究 [J], 李斌;朱杰;马志贤因版权原因,仅展示原文概要,查看原文内容请购买。
声学回声消除算法研究
收稿日期:2004-01-06 作者简介:费璐璐(1978—),女,北京人,在读硕士.文章编号:1672-2477(2004)01-0024-04声学回声消除算法研究费璐璐,王华斌(华东师范大学电子系,上海 200062)摘要:在回声消除中,自适应滤波是核心,而滤波器系数的更新又是自适应滤波的核心.在声学回声消除领域,滤波器系数的更新最常使用的算法是LMS 算法,目前针对LMS 算法有两种改进算法,即NLMS 和NBLMS算法.基于TI 公司的DSP 芯片的硬件资源特点来比较NLMS (Normalized LMS )和NBLMS (Normalized BlockUpdate LMS )算法,为消除声学回声提供选择依据.关 键 词:声学回声消除;NLMS 算法;NBLMS 算法;TMS320VC5402;DSK中图分类号:TP301 文献标识码:A在远程会议系统、车载电话和语音IP 技术中(Voice Over IP ),往往出现语音质量较差的情况.其因素是多方面的,但最关键的因素之一是回声的影响,因此回声消除对提高话音传输质量至关重要.随着回声消除技术的发展,当前回声消除研究的重点,已由“电路回声”的消除转向了“声学回声”的消除.TMS320VC5402是TI 公司生产的从属于TMS320C54x 系列的一个工作灵活、高速、具有较高性价比、低功耗的16位定点通用DSP 芯片,目前它在语音处理方面得到广泛应用.本文基于TMS320VC5402的硬件特点,对NLMS 算法和NBLMS 算法进行比较研究,从而为声学回声消除提供选择依据.1 声学回声的产生机理及其消除原理1.1 声学回声产生机理源自接收器(耳机)的声波,通过位于声音路径上的固体物体反射进入手机的麦克风(话筒)中,或扬声器电话中,这就形成了声学回声.如图1所示.图1 声学回声产生机理图2 声学回声消除的功能原理1.2 声学回声消除原理1.2.1 声学回声消除功能原理声学回声消除的功能原理如图2所示,远端的信号s (n )通个一个自适应滤波器之后生成信号e ~(n ),同时经扬声器在近端放出,再经麦克风拾取后产生我们不需要的回声信号e (n ).在只有远端说话的情况下,e ~(n )和e (n )经过一个减法器之后,成为剩余回声信号r (n ),而自适应滤波器就是利用剩余第19卷第1期2004年3月安 徽 工 程 科 技 学 院 学 报Journal of Anhui University of Technology and Science Vol.19.No.1Mar.,2004回声信号采用LMS 算法来调整自适应滤波器的系数,从而消除剩余回声的.1.1.2 声学回声消除算法原理LMS 算法会不断调整自适应滤波器的系数,而滤波器的系数的个数与回声路径有关,例如回声路径达32ms ,采样率为8k ,则滤波器的系数个数为256.滤波器的系数调整算法如下:(1)信号y (n )滤波后得到信号(注意:对公式参数的调整):^e [n ]=∑255i =0h[i ].s[n -i ] .(1) (2)剩余回声信号:r[n ]=e[n ]-^e [n ]=e[n ]-∑255i =0h[i ].s [n -i ] .(2) (3)利用剩余回声信号调整滤波器系数.算法推导如下: h n +1[i ]=h n [i ]+μ2-99h n [i ]{(|r |2)} ,其中: 99h[i ]{(|r |2)}=299h[i ](r )r , 99h[i ]{(|r |2)}=299h[i ](e -^e )r , 99h[i ]{(|r |2)}=299h[i ]e -∑N -1i =0(h[i ]s[n -i ])(r ) , 99h[i ]{(|r |2)}=2(-(s [n -i ]))r .最终得到LMS 算法的滤波器系数更新如下:h n +1[i ]=h n [i ]+μrs[n -i ] ,(3)式中h n [i ]是第n 个采样值计算后的滤波器第i 个系数.而在实际的回声消除过程中,对滤波器系数的调整和更新有两种方式,一种是每次输入一个采样值,使滤波器的所有系数更新一次,即NLMS 算法;另一种是将滤波器的系数分为若干块,每次输入一个采样值,滤波器系数只是轮回地更新其中一块,即NBLMS 算法.以下将基于TI 公司的TMS320VC5402,介绍这两种算法并对这两种算法进行比较.2 NL MS 算法和NBL MS 算法2.1 NLMS 算法在该算法下滤波器系数的更新过程是,所有系数在对一个采样值进行计算后,全部被更新.具体算法如下.h n +1[i ]=h n [i ]+μr[n ]s[n -i ]P n ,(4)其中μ为适应梯度值,P n 为信号平均能量.P n =(average (|s[i ]|))2 ,h n +1[i ]=h n [i ]+μr[n ]average (|s[i ]|)s [n -i ]average (|s [i ]|) ,(5)式中μr[n ]average (|s [i ]|)是归一化误差和适应梯度值之积,记为n error m u ,s[n -i ]average (|s[i ]|)是归一化采样信号.在TMS320VC5402中采用LMS 指令,(1)和(5)可以在同一个循环中完成,核心算法的汇编语言如下:・52・第1期费璐璐,等:声学回声消除算法研究 ST A ,3filter ptr +;store out coefficient :h (k -1)=A ||MP Y 3n ref ptr +0%,A;coef.increment :A =s (i -k -1)/;average (|y (i )|)3T LMS 3filter ptr ,3ref ptr +0%;new coefficient :A =A +h (k )ν16;convolution :B =B +h (k )3s (i -k )由此可见,完成上述两式计算需要两个指令周期,如果不考虑等待周期,则计算一个采样值需要两倍于滤波器系数个数的指令周期.2.2 NBLMS 算法该算法将滤波器系数分为几块,滤波器系数的更新过程是,所有系数在对一个采样值计算后,轮回地对某一块滤波器系数进行更新.具体算法是:h n (i +M +1)=h n [i ]+μr[n ]average (|s [i ]|)∑M -1m =0r (i +M -m )average (|s [i ]|)s (i +M -m -k ) . 假定滤波器系数个数为TAPS ,滤波器系数共分成BLOC KSIZE 块,则每计算一个采样值,只是TAPS/BLOC KSIZE 个系数值得到更新.在程序设计时可采用两个嵌套的循环.其中内部循环用于计算系数增量,要进行BLOC KSIZE 个循环,需要BLOC KSIZE 个指令周期;外部循环进行系数导入、更新和存储,每一个循环需要8个指令周期.这样加上管理内部循环的指令周期,每计算一个采样值,大约需要的指令周期数为:(10+BLOC KSIZE )3TAPS/BLOC KSIZE.3 NL MS 算法与NBL MS 算法的比较由于回声消除的效果除了与算法有关外,还与滤波器系数的个数、采样率、削波处理、近端语音信号检测等因素相关,因此对两个算法进行比较时,这些因素都取相同值.3.1 两种算法在代码大小和所需指令周期上的比较两种算法在代码大小和所需指令周期上的比较见表1.由此可见:两种算法在性能上的差异与滤波器系数的个数N 和滤波器系数块大小有关.表1 两种算法在代码大小和所需指令周期上的比较算 法代码大小指令周期NLMS6023N +70NBLMS 6023M +N /M (M +10)+153.2 两种算法在TI 公司提供的DSK 板上的运行比较此时语音数据从PC 机上存储好的文件进行读取,两个语音文件的采样率为8k ,如图3所示.图3 两个语音文件数据在运行处理过程中滤波器系数的个数为512,经两种算法运行处理后,剩余回声的幅值随时间的变化・62・安 徽 工 程 科 技 学 院 学 报2004年情况如图4所示.显而易见,NLMS 算法在滤波器系数个数为512,回声延迟时间为64ms 时,其幅值收敛速度比NBLMS 算法幅值收敛速度快.图4 两种算法处理后剩余回声的幅值4 结 论由于在声学回声消除的算法中,是以LMS 算法为核心对滤波器的系数进行更新的,而对滤波器系数的更新有两种方式,一种方式是每计算一个采样值更新所有滤波器系数,即NLMS 算法;另一种方式是将滤波器系数分为若干块,每计算一个采样值轮回地更新其中一块滤波器系数,即NBLMS 算法.我们基于TI 公司的DSP 芯片TMS320VC5402比较这两种方式,发现NLMS 算法总体上比NBLMS 算法好.特别是由于LMS 指令使得NLMS 算法更适合于TMS320VC5402.参考文献:[1] TMS320VC5402data sheet [Z].SPRS079E ,1998.[2] Steven W.Smith ,Ph.D.The Scientist and Engineer ’s Guide to Digital Signal Processing[M ].California :Technical Pub 2lishing ,1997.[3] TI 公司技术支持部.自动无线系统声学回声消去算法核[DB/OL ].TI 公司网站,1997.(Acoustic -Echo CancellationS oftware for Hands -free Wireless system SPRA1621997)[4] 张勇.给予TMS320C5000系列的c/c ++语言硬件程序设计[M ].西安:电子科技大学出版社,2003.[5] 苏涛,蔺丽华.DSP 实用技术[M ].西安:电子科技大学出版社,2002.The research of acoustics echo canceling algorithmFEI Lu 2lu ,WAN G Hua 2bin(Dept.of Elec.Tech.,East China Normal University ,Shanghai 200062,China )Abstract :In acoustic echo -canceling procedure ,adaptive filter is the key point.And the updating of filter co 2efficient plays the most important role in adaptive filter.In the area of acoustic echo canceling ,the traditional way used in updating of filter coefficient is LMS algorithm.There are two improved algorithms from LMS ———NLMS and NBLMS.This article compares the two algorithms from the perspective of hardware characteristics of DSP produced by TI ,it will supply a selection gist for acoustics echo canceling.Key words :acoustic echo canceling ;NLMS algorithm ;NBLMS algorithm ;TMS320VC5402;DSK・72・第1期费璐璐,等:声学回声消除算法研究。
与VoIP声码器结合的回声消除器
【 y w rs c ocn eai ;V l ;N MS ierpei i ;vcd r Ke od 】eh acl t n oP L ;l a rd t n oo e l系 统 中 ,当 听筒 扬 声 器 播 放 出来 的声 音 被
加运算量和结构复杂度的情况下使回声 消除器性能得
c  ̄i s a r i e f m eoe lae ot h cluao o eorlin ie ce i et n te i o i l e e d r d cdr ev s u te a l i t n g s cv n o c t n f cr m o ft ofc ns d i d e lr i a
回声 消 除 器 基 本 原 理 如 图 1所 示 。为 方 便 算 法 的
算式 描述 , 文 中符号上添加 表示为估计 值 ; 下 符号上 添加标 记~ 表示是去相关后 的信号 。
在 k( T T为 抽 样 间 隔 ) 刻 , 收 端 收 到远 端 信 号 时 接 信 号 , 过 回 声 路 径 ( 激 响 应 矢 量 为 日 后 , 生 经 冲 ) 产 回声 信 号
一个开源的声学回声消除器(Acoustic Echo Cancellation)
一个开源的声学回声消除器(Acoustic Echo Cancellation)前段时间,搞了一阵声学回声消除,非常郁闷,因为没有成功,但可以说学到一点东西吧,至少理论上懂了一点。
为什么需要声学回声消除呢?在一般的VOIP软件或视频会议系统中,假设我们只有A和B两个人在通话,首先,A的声音传给B,B然后用喇叭放出来,而这时B的MIC呢则会采集到喇叭放出来的声音,然后传回给A,如果这个传输的过程中时延足够大,A就会听到一个和自己刚才说过的话一样的声音,这就是回声,声学回声消除器的作用就是在B端对B采集到的声音进行处理,把采集到声音包含的A的声音去掉再传给A,这样,A就不会听到自己说过的话了。
声学回声消除的原理我就不说了,这在网上有很多文档,网上缺少的是实现,所以,我在这把一个开源的声学回声消除器介绍一下,希望对有些有人用,如果有人知道怎么把这消除器用的基于实时流的VOIP软件中,希望能一起分享一下。
这个声学回声消除器是一个著名的音频编解码器speex中的一部分,1.1.9版本后的回声消除器才起作用,以前版本的都不行,我用的也是这个版本,测试表明,用同一个模拟文件,它有效果比INTEL IPP库4.1版中的声学回声消除器的还要好。
先说编译。
首先,从上下载speex1.1.9的源代码,解压,打开speex\win32\libspeex 中的libspeex.dsw,这个工作区里有两个工程,一个是libspeex,另一个是libspeex_dynamic。
然后,将libspeex 中的mdf.c文件添加到工程libspeex中,编译即可。
以下是我根据文档封装的一个类,里面有一个测试程序://file name: speexEC.h#ifndef SPEEX_EC_H#define SPEEX_EC_H#include <stdio.h>#include <stdlib.h>#include "speex/speex_echo.h"#include "speex/speex_preprocess.h"class CSpeexEC{public:CSpeexEC();~CSpeexEC();void Init(int frame_size=160, int filter_length=1280, int sampling_rate=8000);void DoAEC(short *mic, short *ref, short *out); protected:void Reset();private:bool m_bHasInit;SpeexEchoState* m_pState;SpeexPreprocessState* m_pPreprocessorState; int m_nFrameSize;int m_nFilterLen;int m_nSampleRate;float* m_pfNoise;};#endif//fine name:speexEC.cpp#include "SpeexEC.h"CSpeexEC::CSpeexEC(){m_bHasInit = false;m_pState = NULL;m_pPreprocessorState = NULL; m_nFrameSize = 160;m_nFilterLen = 160*8;m_nSampleRate = 8000;m_pfNoise = NULL;}CSpeexEC::~CSpeexEC(){Reset();}void CSpeexEC::Init(int frame_size, int filter_length, int sampling_rate){Reset();if (frame_size<=0 || filter_length<=0 ||sampling_rate<=0){m_nFrameSize =160;m_nFilterLen = 160*8;m_nSampleRate = 8000;}else{m_nFrameSize =frame_size;m_nFilterLen = filter_length;m_nSampleRate = sampling_rate;}m_pState = speex_echo_state_init(m_nFrameSize, m_nFilterLen);m_pPreprocessorState =speex_preprocess_state_init(m_nFrameSize,m_nSampleRate);m_pfNoise = new float[m_nFrameSize+1];m_bHasInit = true;}void CSpeexEC::Reset(){if (m_pState != NULL){speex_echo_state_destroy(m_pState);m_pState = NULL;}if (m_pPreprocessorState != NULL){speex_preprocess_state_destroy(m_pPreprocessorState);m_pPreprocessorState = NULL;}if (m_pfNoise != NULL){delete []m_pfNoise;m_pfNoise = NULL;}m_bHasInit = false;}void CSpeexEC::DoAEC(short* mic, short* ref, short* out) {if (!m_bHasInit)return;speex_echo_cancel(m_pState, mic, ref, out, m_pfNoise);speex_preprocess(m_pPreprocessorState, (__int16 *)out, m_pfNoise);}可以看出,这个回声消除器类很简单,只要初始化一下就可以调用了。
VoIP回声消除技术.
VoIP回声消除技术在PBX或局用交换机侧,有少量电能未被充分转换而且沿原路返回,形成回声。
如果打电话者离PBX或交换机不远,回声返回很快,人耳听不出来,这种情况下无关紧要。
但是当回声返回时间超过10ms时,人耳就可听到明显的回声了。
为了防止回声,一般需要回声消除技术,在处理器中有特殊的软件代码监听回声信号,并将它从听话人的语音信号中消除。
对于IP电话设备,回声消除技术是十分重要的,因为一般IP网络的时延很容易就达到40~50ms。
”一、因特网语音通信中回声的特点与传统电话相比,因特网上进行语音的实时传输,有其致命的弱点,那就是语音质量较差,影响因特网语音质量的因素是多方面的,最关键的因素之一是回声的影响。
因此,要提高因特网的语音质量,就必须在因特网的语音传输过程中进行消回声的处理,也就是说,IP电话网关作为因特网的语音接入设备,几须具有回声的消除功能。
由于因特网的语音传输是采用分组交换技术实现的一种全新的电信业务,传送的语音信号要经过编码、压缩、打包等一系列处理,这不仅造成回声路径的延迟较大,而且延迟抖动也较大。
因此,在因特网的语音传输过程中,回声问题显得尤其突出,并具有如下特点。
1、回声源复杂在传统电话系统中,存在着一种所谓的"电路回击"。
该回声产生的主要原回是在系统中存在2-4线的转换。
完成2-4转换的混合器因阻抗匹配,造成"泄漏",从而导致了"电路回声"。
从因特网IP电话网关的连接方式可以看出,IP电话网关一端连接PSTN,另一端连接因特网。
尽管电路回声产生于PSTN中,但同样会传至于IP电话网关,是因特网语音传输中的回声源之一,因特网语音传输中的第二种回声源是所谓的"声学回声"。
声学回声是指扬声器播放出来的声音被麦克风拾取后发回远端,这就使得远端谈话者能听到自己的声音。
声学回声又分为直接回声和间接回声。
直接回声是指扬声器播放出来的声音未经任何反射直接进入麦克风。
VoIP电话中的回声消除算法
VoIP电话中的回声消除算法姚月琴;杨彦;陈林;赵力【摘要】声学回声是降低VoIP通话通信质量的重要问题之一,自适应回声抵消是抑制回声的最有效方法之一,其采用自适应滤波器评估回声路径.常用的NLMS(Normalized Least Mean Square)算法计算复杂度高,实用性差,利用FFT 技术,实现了NLMS频域快速算法FDNLMS(Frequency Domain Normalized Least Mean Square),将自适应更新变换到频域,逐块进行累加更新,保证收敛性能的同时,极大地降低了运算复杂度.实验表明,在滤波器系数为1024阶时,FDNLMS 算法的处理速度比NLMS快12倍.【期刊名称】《电子器件》【年(卷),期】2018(041)006【总页数】4页(P1618-1621)【关键词】VoIP通话;自适应滤波;回声抵消;FDNLMS【作者】姚月琴;杨彦;陈林;赵力【作者单位】盐城工业职业技术学院机电工程学院,江苏盐城650500;盐城工业职业技术学院机电工程学院,江苏盐城650500;东南大学信息科学与工程学院,南京210096;东南大学信息科学与工程学院,南京210096【正文语种】中文【中图分类】TN916.1在VoIP通话中,网络时延等因素使得回声现象比较严重,这极大的降低了用户体验。
语音通话中的回声分为两种:电路回声和声学回声。
声学回声相对复杂,较难消除,是回声消除领域研究的重点[1-2]。
为有效解决回声问题,最初的算法思路是采用一种非线性的回声抑制器[3]。
但这种机制会使通话断断续续,故在实际运用中,很少使用。
上世纪60年代,贝尔实验室首次结合自适应滤波技术设计了回声抵消器,使得该技术得到了广大支持并迅速应用开来。
在众多自适应算法中,最常用的是NLMS[4-5,7]算法,其算法原理是运用最小均方误差准则,使自适应滤波器逼近真实路径的频响特性。
NLMS算法收敛性能好,稳定性强[6],但计算量较大[8],当N(滤波器阶数)增大时,运算量以N的平方的比例迅速增加,这会影响VoIP电话这类系统的实时性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VoIP声学回声消除算法研究
0 引言
近年来,VoIP(Voice over IP)技术及其业务的迅速发展,对传统的电信业务造成了巨大的冲击,与传统电话相比,IP电话以其网络带宽利用率高,通话成本低,可灵活地提供丰富的增值功能而备受市场青睐。
然而,由于VoIP 的语音在与其他数据一起在网络中传输时要经过压缩、编码、打包等一系列处理,造成回声路径的延迟较大,延迟抖动也较大,严重影响了话音质量,阻碍了VoIP市场的拓展。
因此,在VoIP终端上增加回声消除算法已成为必然。
1 声学回声消除技术的原理
1.1 声学回声产生原理
根据回声的产生原因,回声可以分为声学回声和电学回声两类。
电学回声是由于电路阻抗不匹配造成的,通常影响比较小。
随着消除回声技术的发展,当前回声消除研究的重点已由“电学回声”的消除转向了“声学回声”的消除。
声学回声指设备的一部分声音信号回馈到同一设备的受话器,分为直接回声和间接回声。
直接回声指扬声器的声音未经任何反射直接进入麦克风,这种回声延迟最短。
间接回声是指扬声器播放的声音经不同的路径一次或多次反射后进入麦克风所产生的回声集合,其主要特点是回声路径冲激响应变化范围大,变化快,冲激响应持续时间长,一般在50~300 ms。
这使得自适应建模滤波器的阶数很高,因而成为语音通信系统回声的主要难题。
1.2 声学回声消除的原理
自适应回声抵消的基本思想是估计回声路径的特征参数,产生一个模拟的回音路径,得出模拟回声信号,从接收信号中减去该信号,实现回声抵消。
图1给出了单向传输的声学消回声器AEC的原理图。
图1中,y(n)代表来自远端的信号;r(n)是经过回声通道而产生的不期望的回声;x(n)是近端的语音信号;D口的近端信号叠加有不期望的回声。
对消回声器来说,接收到的远端信号作为参考信号,消回声器根据由自适应滤波器产生回声估计值,将r1(n)从近端带有回声的语音信号减去,就得到近端传送出去的信号μ(n)=x(n)+r(n)-r1(n)。
在理想情况下,经过消回声处理后,残留的回声误差e(n)=r(n)-r1(n)将为0,从而实现回音消除。
2 自适应回声消除算法理论
回声消除理论的难点是估计回声与近端输入信号之间的同步问题以及如何对双端讲话进行处理的问题,若这两个问题处理不好,就会造成滤波器的发散,不但不能消除回声,反而会引入更烦人的噪声。
2.1 双端话音处理与MDF算法结合
在NLMS算法中,假设输入近端背景噪声与远端信号均为白噪声,那么两信号间为时间无关的,因此可以求得最优步长因子:
式中:r(n)为残留回声的方差的估计值;e(n)为误差信号的方差的估计值。
但是用LMS/NLMS算法来进行语音信号的声学回声消除时,两信号时间
无关的假设就不完全成立,因此只能借助于频域处理法。
MDF算法相当于对每一个频率使用NLMS算法。
为了解决双端讲话检测这个难题,文献[6]提出了一种与MDF相结合的不需要显式进行双端话音检测的方法,以下是推导。
由于信号在频域的相关程度比在时域的相关程度小得多,而且步长因子μ也可以变换到频率域μ(k,l),即有公式:
式中:k为输入信号块索引号;l为信号频率。
假定残留回声是泄漏因子η(l)与回声估计值的乘积,即:
又因为步长因子需要在双端讲话发生时迅速对其做出反应,故可以有等式:。