目前,QQ视频、语音通信已经成为既省钱又方便的交流方式,但是,利用因特网传输语音数据虽然提高了资源的利用率,同时也存在一些弊端,比如语音质量差。造成这种问题的因素有很多,其中最主要的是网络问题和回声问题。在正常的通话过程中通常伴有回声,由于回声的存在,使得对方听音不清晰,影响通话质量[1]。
参考文献[2]介绍了一种归一化快速块最小均方算法(NFBLMS),相比LMS算法,它不仅可以有效减小运算复杂度,同时也能改善收敛速度。参考文献[3]运用了一种新的回声控制系统,该系统结合了非线性谐波处理的线性回声消除,获得了很好的回声消除效果及收敛效果。参考文献[4]提出了一种全极IIR回声消除器,该回声消除器可以应用传统的LMS算法,并得到很好的效果。
1 回声产生的原理及主要的消除方法
1.1 回声产生的基本原理
回声一般可分成电路回声和声学回声。电路回声主要由提供商的线路质量所致,而声学回声则是由用户端设备的质量所致。
1.1.1 电路回声
在传统电话系统中,存在着一种所谓的“电路回声”。该回声产生的主要原因是在系统中存在2-4线的转换。完成2-4转换的混合器因阻抗匹配,造成“泄漏”,从而导致“电路回声”。
1.1.2 声学回声
因特网语音传输中的第二种回声源是“声学回声”。声学回声是指扬声器播放出来的声音被麦克风拾取后发回远端,这就使得远端谈话者能听到自己的声音。声学回声又分为直接回声和间接回声。
直接回声是指扬声器播放出来的声音未经任何反射直接进入麦克风。这种回声延迟最短,它与远端说话者的语音能量,扬声器与话筒之间的距离、角度、扬声器的播放音量以及话筒的拾取灵敏度等因素相关。
间接回声是指扬声器播放的声音经不同的路径一次或多次反射后进入麦克风所产生的回声集合。
由于电路回声主要由供应商的线路质量所致,其消除也通常由供应商解决,故本文主要解决声学回声的消除方式。
1.2 回声消除方法
回声消除的原理:假设需要消除房间 A所能听到的回声,把房间A 发送回路的声音送入采样器进行采样,采样后这个样值被送到回声抑制模型电路进行回声抑制模型建立,再把这个回声抑制的模型送入接收回声的回声比较器进行比较,最终达到抑制回声的目的。
常用的回声消除方法有以下几种:
(1)本端回声消除器(以CISCO系统内置回声消除器为代表):回声消除电路内置在本端通信终端设备上,为本地会场消除远端回声影响。
(2)异端回声消除器(以ClearOne的回声消除器为代表):本地的回声消除电路是用来消除对端的回声。
(3)分布式回声消除:分布式回声消除是美国Clear-
One公司独有的专利技术,有别于单路回声消除,它在XAP系列产品的每一路麦克输入都内置了回声消除器,可以更有效、更彻底地消除回声。
2 FM2010简介及回声消除装置设计
FM2010是Fortemedia公司推出的一款小引脚低功耗的回音消除器和噪音抑制器。
2.1 FM2010特性及回声消除原理
FM2010 是集合CODECs、ROM、RAM以及串口的基于DSP技术的芯片。利用创新的SAM(小型阵列麦克风)技术与波束形成能力,其功率消耗仅为25 mW。圆锥形波束形成特性可以在保持用以提高清晰度的声音质量和增加声音的可辨识度的同时对噪音进行压制。FM2010的回音消除可达60 dB,非平稳噪音抑制可达20 dB,平稳噪音抑制为18 dB。每个模拟通道都是8 kHz的采样率和84 dB的信噪比。为了进一步减少能耗,FM2010使用特定的硬件加速器来降低MIPS的需求以达到25 mW的损耗,并附带了硬件加速器的声音处理器[5]。
FM2010使用的是自适应回声抵消原理, 声学回声抵消器的实质就是用一个自适应横向滤波器对未知的回声授通道进行系统辨识,模拟回声路径,再通过自适应滤波算法的调整,使其时域冲激响应与实际回声路径相逼近,从而得到回声预测信号,再将预测信号从麦克风接收到的语音信号中减去,即可实现回声抵消。其原理即为分布式回声消除方式。具体来说就是FM2010芯片的MIC IN是麦克风进入的信号, 即用户的声音输人信号, 其中包含由本机扬声器漏进去的部分主话端的语音信号。Line IN接入的是主话端的语音信号, 即由本机扬声器输出的信号直接接入FM2010的Line IN输入端。在FM2010内部会经过DSP芯片的运算处理对两者进行比较,消除MIC IN信号中与Line IN端相同的信号(即回声音频信号),使用自适应回声抵消原理达到消除回声的目的[6]。
2.2 硬件电路及PCB板设计
图1为宏观硬件架构图(原理图)。如图所示,FM2010配有E2PROM。E2PROM的主要作用是存储初始化信息,保存并传递回音消除的参数。图中FM2010芯片为回声消除的主要工作芯片(芯片未接脚为悬空),并配以相应的电源电路,以及麦克风的接口电路,从而整体完成消除回声的功能。
2.3 软件程序的设计
图2所示为软件架构示意图。FM2010回音消除的软件开发需要的几个步骤为:
(1)给回音消除芯片上电,并对芯片及E2PROM进行初始化;
(2)等待初始化完成;
(3)接收通话信息并进行存储;
(4)将通话信息写入回音消除芯片内并进行处理。
需要指出的是,对FM2010进行初始化时,要按其规格说明书定义的上电时序进行,否则可能会导致在录音时会有时断时续的情况发生。即在初始化FM2010时,PWD high的状态必须要在RESET high状态之前设定,两者之间相差5ms。在此,给出对FM2010的初始化程序:
3 回声消除测试及效果
在实验中,本文使用了当前十分流行通用的语言聊天软件——腾讯QQ进行语音视频通信,在保证网络状态的前提下,本文通过电脑与本文中设计的电路板相连,如图3所示(图中FM2010代表本文中设计的电路板整体电路,并非仅是芯片本身)。测试时,在进行通话过程中同时播放音乐,通过测试,可分别在开启本设计电路板和未开启本设计电路板的条件下,得到处理前和处理后的实验效果。在未启用本电路板时,如果通话过程中有背景音的存在,会导致通话效果受到明显的影响,而启用本电路板之后,通话过程中背景音已被消除,通话效果得到明显改善。
在对背景音的抑制试验之后,本文又对回声的抑制进行了试验。在试验时,选择在雨天进行(因为雨天时网络状况不稳定,易产生回声),通过QQ聊天工具进行试验(在试验时使耳机和话筒距离较近,这样可以进一步验证本设计的性能)后得到处理前和处理后的效果。
通过试验可以清楚地看到,经过本设计处理后的通话效果得到明显的提高,大部分的回音被明显地抑制,有效地剔除了回声对通话的影响,即本设计对回声的抑制有明显作用。
本文在分析视频语音通话中回声产生的基础之上,具体研究了回声消除的原理,并介绍了几种常用的回声消除方法。其后根据FM2010芯片的特点,设计了回声消除的软硬件方法。通过在QQ视频语音交流中的应用,验证了其对回声的有效消除。此外,本设计已应用于南京某军区养老院,并取得了良好效果。
参考文献
[1] 肖尚辉,黄邦菊.一种简化的自适应回声抵消算法及其应用分析[J].通信技术,2009,43(2):133-135.
[2] 开跃春,金涛,贾宏志.IP会议电话回声消除器的设计及仿真[J].计算机仿真,2010,27(1):322-325.
[3] YASUKAWA H,FURUKAWA I,ISHIYAMA Y.Acoustic echo control for high quality audio teleconferencing[J]. IEEE,1989(2).
[4] Chen W Y.An all pole IIR echo canceller.IEEE.1990.3.
[5] Fortemedia Corporation. FM 2010 Preliminary Datasheet.vl[M],2006.
[6] 郑宇,王波.基于FM2010和WINCE平台的回音消除驱动设计[J].单片机与嵌入式系统应用,2008,8(4):37-40.