回声消除技术(2)

从应用平台来看,可以把回声消除分为两大类:

(1). 基于DSP等实时平台的回声消除技术

(2). 基于Windows等非实时平台的回声消除技术

两者的技术难度和重点是不一样的。

三、基于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、国内的松西科技Sosea Technologies、美国的Adaptive Digital、GAO Research、以及英国的CSR等。另外美国的Fortemedia、Acoustic Technologies和日本的OKI等也可以提供专用的回声消除DSP芯片。其中性能较好的有Octastic、Sosea、和Spririt这三家,Octastic可以提供从专用芯片、板卡到DSP算法的完整方案,而Sosea和Spririt的回声消除效果更好。

四、基于Windows平台的回声消除技术

回声消除技术最新的应用领域是基于Windows平台的各种VoIP应用,比如软件视频会议,VoIP软件电话等。当回声消除算法应用到Windows平台,相对于传统的DSP平台,既带来优势,也带来了新的难点。高效性在Windows平台已经不是问题,现在的pc机,拥有丰富的cpu资源和海量的内存资源,再复杂的回声消除算法都可以运行自如。但是,新增加的麻烦比带来的好处要多。

首先,Windows平台是一个非实时的平台,音频的采集和播放对回声消除算法而言,也是非实时的。与DSP平台不一样,DSP平台可以直接控制AD/DA芯片的采集播放,获得实时的音频流(不存在同步问题),但是Windows平台下,应用程序很难在底层直接控制声卡的采集播放,获得的是非实时的音频流,从而带来了采集和播放音频流的同步问题。

实际应用时,传给回声消除算法的两个声音信号(采集的回音信号ne和播放的参考信号fe),必须同步得非常的好。就是说,本地接收到远端语音信号后,要把该语音数据传给回声消除算法做参考,这是一个算法需要的输入信号;然后再传给声卡,声卡播放后经过回音路径,此时本地再采集并传给回声消除算法,这是算法需要的另一个输入信号。这里的同步是指:两个信号虽然存在延时,但这个延时必须固定,在时序上要保持连贯,不能一个信号多来几个帧,另一个信号少来几个帧。如果传给回声消除算法的两个信号同步不够好,即两个信号发生帧错位,就没办法进行消除了。因为这时系统会变成了非因果系统,比如期望信号收到了,参考信号还没来,时间上都没有因果关系,肯定是没有办法消除的。

实际情况是,在一般的VoIP软件中,接收对方的语音信号并传到声卡中播放是在一个线程中进行的,而采集本地的语音信号并传送给对方又是在另一个线程中进行的,而声学回声消除算法在对采集到的语音信号进行回声消除的同时,还需要播放线程中的语音数据作为参考,所以要同步这两个线程中的数据是非常重要的,因为稍稍有些不同步,声学回声消除算法中的自适应滤波器就会发散,不但消除不了回音,还会破坏原始采集到的语音信号,使声音难以分辨。另外,pc机器的声卡种类繁多,各种各样的声卡特性进一步加剧了同步问题的复杂性。所以,同步和声卡等问题对回声消除算法的内部特性提出了更多苛刻的要求。

从上面分析来看,由于Windows平台的非实时性,基于Windows平台的回声消除技术比DSP平台要难得多。

在PC平台语音通讯领域,目前公认音质做得比较好的国外软件是Skype,记得几年前Skype一直是在用瑞典一家叫GIPS(Global IP Sound)公司的语音引擎技术。GIPS是最早介入PC平台语音通讯领域的厂商之一,在该领域具有一定的权威性,其主要优势表现在对IP网络的延时、抖动和丢包等处理较好,基于Windows平台的回音消除也做得不错,不过最近的新版本Skype上已经看不到GIPS的标志了,据说是因为Skype自己研发了一套新的更好的语音引擎的缘故。

目前大家接触最多的采用了GIPS语音引擎技术的通讯软件就是腾讯QQ了,其超级语音的效果普遍评价都还不错。另外微软经过多年的研发,其最新版本的MSN语音,特别是回音消除效果也有了质的提升,目前网上评价也还不错。其他还有一些专业厂商也对外提供包含回音消除功能的语音引擎,如俄罗斯的Spirit DSP、美国的GH Innovation和国内的松西科技(Sosea Technologies)以及赛声科技(SoftAcoustic)等等。

为了进一步了解目前PC Windows平台回音消除技术的业界水平,笔者对各家的回音消除技术做一个详细的横向对比测试(所有测试都是免提状态)


测试项目


Skype


MSN


QQ


Sosea


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


QQ


Sosea

Spirit


Speex


SoftAcoustic


GH I

可以看出,Skype、 Sosea和 QQ(GIPS)的效果最好, MSN和Spirit的效果还不错,而GH Innovation、Soft Acoustic效果一般,Speex的效果较差。

 

五、总结

回声消除已经成为语音通讯中提供全双工音频的标准方法。声学回声消除是通过消除或者移除本地话筒中拾取到的远端的音频信号来阻止远端语音信号回传的一种处理方法。这种音频的移除都是通过数字信号处理来完成的。回声消除技术是数字信号处理的典型应用之一。


原文链接: http://silversand.blog.51cto.com/820613/166101

时间: 02-27

回声消除技术(2)的相关文章

解密回声消除技术--转

一.前言 因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘.高端和难以理解的技术领域可谓知之甚详. 要了解回声消除技术的来龙去脉,不得不提及作为现代通讯技术的理论基础——数字信号处理理论.首先,数字信号处理理论里面有一门重要的分支,叫做自适应信号处理.而在经典的教材里面,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的.既然回声消除在教科书上都作为一种经典的具体的应

回声消除技术解析——转

一.前言 因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘.高端和难以理解的技术领域可谓知之甚详. 要了解回声消除技术的来龙去脉,不得不提及作为现代通讯技术的理论基础——数字信号处理理论.首先,数字信号处理理论里面有一门重要的分支,叫做自适应信号处理.而在经典的教材里面,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的.既然回声消除在教科书上都作为一种经典的具体的应

回声消除-理论篇

一.前言 要了解回声消除技术,就不得不提及作为现代通讯技术的理论基础——数字信号处理理论.首先,数字信号处理理论中有一门重要的分支,叫做自适应信号处理,而经典的教材里,回声消除问题从来都是作为一个经典的自适应信号处理案例来讨论的.既然回声消除在教科书上都是作为一种经典具体的应用,那么从理论角度也就没有什么神秘感的了.但是,为什么提供回声消除技术(不管是芯片还是算法)的公司都是来自国外,回声消除技术的难点和神秘性又在哪里呢? 二.回声消除原理从通讯回音产生的原因看,可分为声学回音(Acoustic

Flex回声消除的最佳方法

Adobe Flash Player 已经成为音频和视频播放的非常流行的工具.实际上,目前大多数因特网视频均使用 Flash Player观看. Flash Player 通过将许多技术进行组合可以提供具有丰富视觉体验和效率的高质量的播放功能,这些技术包括高级音频和视频压缩方法 (H.264.MP3和 AAC codecs).通用媒体功能 (多速率流媒体.播放列表.搜寻和其它功能) 和高效的播放机制 (硬件解码和直接渲染)等. 由于Flash Player 在桌面计算机上的广泛应用已经在移动设备

回声消除中的自适应算法发展历程

传统的IIR和FIR滤波器在处理输入信号的过程中滤波器的参数固定,当环境发生变化时,滤波器无法实现原先设定的目标.自适应滤波器能够根据自身的状态和环境变化调整滤波器的权重. 自适应滤波器理论 $x(n)$是输入信号,$y(n)$是输出信号,$d(n)$是期望信号或参考信号,$e(n)=d(n)-y(n)$为误差信号.根据自适应算法和误差信号$e(n)$调整滤波器系数. 自适应滤波器类型.可以分为两大类:非线性自适应滤波器.线性自适应滤波器.非线性自适应滤波器包括基于神经网络的自适应滤波器及Vol

基于设备的回声消除

一.Win7下的实现: http://download.csdn.net/detail/xuwei17385/6426783 二.WinXP下的实现: http://download.csdn.net/detail/xuwei17385/4060561 基于设备的回声消除,布布扣,bubuko.com

Speex回声消除原理深度解析

这里假设读者具有自适应滤波器的基础知识.Speex的AEC是以NLMS为基础,用MDF频域实现,最终推导出最优步长估计:残余回声与误差之比.最优步长等于残余回声方差与误差信号方差之比,这个结论可以记下,下面会用到的. 对于长度为N的NLMS滤波器,误差信号定义为期望信号与估计信号之差,表示如下: \[e(n) = d(n) - \hat y(n) = d(n) - \sum\limits_{k = 0}^{N - 1} {{{\hat w}_k}(n)x(n - k)} \] 则,滤波器的系数更

LMS、NLMS最优步长理论分析与Speex回声消除可能的改进想法

一.回声消除算法模型 先来分析下自适应回声消除的主要组成部分,大体上可以把回声消除模型分为两个部分 横向滤波器结构 滤波器系数自适应与步长控制 横向滤波器用脉冲响应w(n)[有的地方也称为回声路径]与远端说话者信号u(n)卷积得到回声估计,并用y(n)表示该估计.麦克风输出信号做为期望响应d(n),从期望响应d(n)中减去滤波器的”合成回声”,得到误差信号e(n).通过不断的调整滤波器系数w(n)使误差信号的均方值最小化,其结果就是:误差信号为本地语音提供了一个近似的估计.这就是为什么这样的结构

iOS设备上回声消除的例子

工业上的声音处理中,回声消除是一个重要的话题,重要性不亚于噪声消除.人声放大.自动增益等,尤其是在VoIP功能上,回声消除是每一个做VoIP功能团队的必修课.QQ.Skype等等,回声消除的效果是一个重要的考查指标. 具体的回声消除算法比较复杂,我现在还没有研究的很明白.简单来说,就是在即将播放出来的声音中,将回声的那部分减去.其中一个关键,是如何估计回声大小,这需要用到自适应算法.研究不透,多说无益.有兴趣的同学可以一起学习. Apple在Core Audio中提供了回声消除的接口,我写了一个