回声消除应用平台
- 基于DSP等平台的回声消除技术
- 基于windows等非实时平台的回声消除技术
基于DSP平台的回声消除技术
回音抵消的核心就是一个采用自适应算法的滤波器,虽然以前自适应信号理论发展迅速,但由于受到硬件的限制而难以实现,一直到上世纪70年代末80年代初,随着世界上第一片单片可编程DSP芯片的诞生,才将理论广泛地应用到低成本的实际系统中,从而推动了新理论和应用领域的发展。
DSP芯片是以数字信号处理为基础的,具有数字信号处理全部优点:改进的哈佛结构,具有深达6级流水线的结构,专用的硬件乘法器,速度快,精度高,稳定性好,接口方便简单,集成度高,可重复性好,保密性好,最重要的是具有一些特殊的指令结构,如MAX,MIN,FIRS,LMS等指令。其中指令LMS为自适应滤波器的实现自适应算法提供了最大的方便。所以用DSP芯片实现回音抵消具有很大优势。
回声消除技术传统的应用领域是各种嵌入式设备
- 电信网络设备
- 交换机
- 网关
- 终端设备
- 移动电话终端
- 视频会议终端
这种嵌入式设备都是采用各种型号的DSP芯片作为回声消除的载体。一个有效的回声消除算法需要持续的在一颗DSP芯片上面运行,都要面对实时性与高效性两大问题。
因为DSP芯片资源有限。虽然自从二十世纪七十年代DSP应用以来,日新月异的硬件芯片技术使许多沉睡在教科书上的信号处理理论算法大规模应用,但是回声消除算法需要的资源还是大得惊人。以视频会议系统,大规模的会议室可以产生超过512ms的回音,要消除这么长延时的回音,即使按照8k赫兹采样率计算,自适应滤波器W(n)的长度都会达到4096个点,这样一方面需要非常大的存储空间来存储权重W(n),另一方面,W(n)的更新需要的计算量也是成倍增长,同时,W(n)的收敛难度也在加大,传统自适应滤波器的效率很难保证。对于电信设备中的应用,虽然回声消除不需要这么长的延时,但是在交换机等设备中,成本和效率就是生命,所有的处理算法都是按路或按线计算的,对算法的优化效率提出了无止境的要求。相对而言,只有像车载免提这种应用对效率要求不那么高,因为车内空间小,回音延时有限,又不要求多路应用。
算法级DSP软件解决方案(也是解决嵌入式设备回音问题的一种途径),对用户也有一定的灵活性,用户只需要把回声消除模块集成到自己的DSP软件中,再简单调整几个相关参数,就能达到较好的回声消除效果。
目前基于DSP的回声消除算法已经比较成熟,市场上也有一批专门的算法/芯片公司的能够对外提供已经优化好的基于DSP的软件回声消除模块,如:俄罗斯Spririt DSP、加拿大Octastic Semiconductor、瑞典GIPS、国内科莱特斯科技Conatus Technologies、美国Adaptive Digital、和GAO Research、英国CSR、美国Fortemedia、Acoustic Technologies和日本OKI等可以提供专用的回声消除DSP芯片。性能较好的有Octastic、Conatus、和Spririt这三家,Octastic可以提供完整的从专用芯片、板卡到DSP算法的完整方案,而Conatus和Spririt的回声消除效果更好,Conatus公司是目前市面上唯一提供针对专业视讯会议应用宽带回声消除模块的公司,其音频采样率可以达到48k赫兹。
基于Windows平台的回声消除技术
回声消除技术最新的应用领域是基于Windows平台的各种VoIP应用,比如软件视频会议,VoIP软件电话等。当回声消除算法应用到Windows平台,相对于传统的DSP平台,既带来优势,也带来了新的难点。高效性在Windows平台已经不是问题,现在的pc机,拥有丰富的cpu资源和海量的内存资源,再复杂的回声消除算法都可以运行自如。但是,在Window平台运行会增加延时。
Windows平台是一个非实时的平台,音频的采集和播放对回声消除算法而言,也是非实时的。和DSP平台不一样,DSP平台可以直接控制AD/DA芯片的采集播放,获得实时的音频流(不存在同步问题),但是Windows平台下,应用程序很难在底层直接控制声卡的采集播放,获得的是非实时的音频流,从而带来了采集和播放音频流的同步问题。
实际应用时,传给回声消除算法的两个声音信号(采集的回音信号near和播放的参考信号far),必须同步得非常的好。就是说,
本地接收到远端说的话以后,要把这些话音数据传给回声消除算法做参考,这是一个算法需要的输入信号;然后再传给声卡,声卡放出来后经过回音路径,这时,本地再采集,然后传给回声消除算法,这是算法需要的另一个输入信号。这里的同步是指:两个信号虽然存在延时,但这个延时必须固定,在时序上要保持连贯,不能一个信号多来几个帧,另外一个信号少来几个帧。如果传给回声消除算法的两个信号同步得不好,即两个信号发生帧错位,就没有办法进行消除了。因为这时系统会变成了非因果系统,比如期望信号收到了,参考信号还没来,时间上都没有因果关系,肯定是没有办法消除的。
实际情况是,在一般的VoIP软件中,接收对方的声音并传到声卡中播放是在一个线程中进行的,而采集本地的声音并传送到对方又是在另一个线程中进行的,而声学回声消除算法在对采集到的声音进行回声消除的同时,还需要播放线程中的数据作为参考,而要同步这两个线程中的数据是非常重要的,因为稍稍有些不同步,声学回声消除算法中的自适应滤波器就会发散,不但消除不了回音,还会破坏原始采集到的声音,使声音难以分辨。
目前公认音质做得比较好的国外软件是Skype,记得几年前Skype一直是在用瑞典一家叫GIPS(Global IP Sound)公司的语音引擎技术。GIPS是最早介入PC平台语音通讯领域的厂商之一,在改领域具有一定的权威性,其主要优势表现在对IP网络的延时、抖动和丢包等处理较好,基于Windows平台的回音消除也做得不错,不过最近的新版本Skype上已经看不到GIPS的标志了,据说是因为Skype自己研发了一套新的更好的语音引擎的缘故。 目前大家接触最多的采用了GIPS语音引擎技术的通讯软件就是腾讯QQ了,其超级语音的效果普遍评价都还不错。另外微软经过多年的研发,其最新版本的MSN语音特别是回音消除效果终于有了质的提升,目前网上评价也还不错。另外还有一些专业厂商也对外提供包含回音消除功能的语音引擎,如俄罗斯的Spirit DSP、美国的GH Innovation和国内的科莱特斯科技(Conatus Technologies)以及赛声科技(Soft Acoustic)等等。除此之外,网络上还可以下载到一个很好的开源的语音软件Speex也提供了回音消除功能。为了进一步了解目前PC Windows平台回音消除技术的业界水平,笔者对各家的回音消除技术做一个详细的横向对比测试(所有测试都是免提状态)
为了对比,各家语音引擎的版本信息列举如下:
国外厂商:
- Skype V3.8.4.182
- Spirit DSP(厂家DEMO)
- GIPS(QQ 2009beta)
- Micorsoft (Windows Live Messenger 2009 V14.0.8064.2006)
- GH Innovation(厂家DEMO)
国内厂商:
- Conatus Technologies(厂家DEMO)
- Soft Acoustic(厂家DEMO)
开源算法:
Speex(V1.2RC1 自己写了测试软件)
测试结果:
测试项目 |
Skype |
MSN |
|
Conatus |
Spirit |
Speex |
SoftAcoustic |
GH I |
笔记本免提模式,外接麦克风和音箱应用模式的适应性 |
两种模式都无回音 |
笔记本免提模式有时一直有较小回音 |
笔记本免提模式偶尔有较小回音 |
两种模式都无回音 |
笔记本免提模式有时一直有较小回音 |
两种模式都有一直较小回音 |
两种模式有时都会出现较大回音 |
笔记本免提模式一直有很小回音 |
单方讲话效果 |
无回音,效果很好 |
基本无回音,效果好 |
基本无回音,效果好 |
无回音,效果很好 |
基本无回音,效果好 |
一直有较小回音,效果差 |
有时有很大回音,效果差 |
基本无回音,效果好 |
双方同时讲话效果 |
双方交流流畅无回音,对方声音偶尔有轻微断续 |
双方交流流畅,但对方声音中会夹杂着轻微回音 |
双方交流流畅,但对方声音中会夹杂着一些回音 |
双方交流流畅无回音,对方声音偶尔有轻微断续 |
双方交流流畅,但对方声音中间会夹杂着一些回音 |
双方交流比较流畅,但一直听到一个较小的回音 |
双方交流不流畅,对方声音经常会断续 |
双方交流无回音,但对方声音很小很难听清楚 |
麦克风和扬声器相对的位置改变等 |
收敛比较快,基本没有回音出现。 |
收敛比较快,基本没有回音出现。 |
收敛比较快,基本没有回音出现。 |
收敛比较快,基本没有回音出现。 |
收敛比较快,基本没有回音出现。 |
收敛速度慢,有好几句回音 |
收敛速度慢,有好几句回音 |
收敛比较快,基本没有回音出现。 |
CPU重载(CPU负载达到100%)时效果 |
XP和Vista下声音都流畅,基本不会出现回音和声音断续现象 |
XP和Vista下声音都流畅,基本不会出现回音和声音断续现象 |
XP下声音流畅,基本不会出现回音;Vista下声音断续,偶尔会出现回音 |
XP和Vista下声音都流畅,基本不会出现回音和声音断续现象 |
XP下声音流畅,基本不会出现回音;Vista下声音断续,偶尔会出现回音 |
此项未测 |
XP下声音流畅,基本不会出现回音;Vista下声音断续,偶尔会出现回音 |
XP下声音流畅,基本不会出现回音;Vista下不加负载声音都是断续的 |
PC和声卡适应性 |
稳定,基本都能消除回音 |
稳定,基本都能消除回音 |
比较稳定,偶尔有些笔记本免提时有回音 |
稳定,基本都能消除回音 |
稳定,基本都能消除回音 |
不稳定,有时无法消除回音 |
不稳定,经常无法消除回音 |
稳定,基本都能消除回音 |
噪声抑制 |
噪声抑制效果弱 |
噪声抑制效果一般 |
噪声抑制效果弱 |
噪声抑制效果强 |
噪声抑制效果一般 |
噪声抑制效果强 |
噪声抑制效果强 |
噪声抑制效果强 |
自动硬件增益控制和免提时能达到的最大播放音量 |
支持,音量较大 |
支持,音量较小 |
支持,音量适中 |
支持,音量适中 |
支持,音量较小 |
不支持 |
支持,音量较小 |
支持,音量非常小 |
整体效果评价(0-10分评分) |
很好,基本没有回音,双方交流很顺畅,9分 |
较好,有的笔记本免提时偶尔有回音且音量较小,双方交流比较顺畅,7.5分 |
较好,有的笔记本免提时偶尔有回音,双方交流顺畅,8分 |
很好,基本没有回音,音量比skype略小,双方交流很顺畅, 8.5分 |
较好,有的笔记本免提效果稍差且音量比较小,vista效果稍差,7分 |
不好,一直有个较小的残余回音,双方交流困难,3分 |
不好,经常有完整的回音,感觉不稳定,双方交流比较困难,5分 |
一般,没有回音,但是音量太小,双方交流困难,且VISTA下声音断续,5.5分 |
测试项目 |
Skype |
MSN |
|
Conatus |
Spirit |
Speex |
SoftAcoustic |
GH I |
可以看出,Skype、 Conatus和 QQ(GIPS)的效果最好, MSN和Spirit的效果还不错,而GH Innovation、Soft Acoustic效果一般,Speex的效果较差。
五、总结
回声消除已经成为语音通讯中提供全双工音频的标准方法。声学回声消除是通过消除或者移除本地话筒中拾取到的远端的音频信号来阻止远端的声音返回去的一种处理方法。这种音频的移除都是通过数字信号处理来完成的。回声消除技术是数字信号处理的典型应用之一。
参考