近年,随着大数据时代的来临,很多楼宇对讲系统也相应的进入改造行列。传统的双线四线制对讲慢慢地进入衰老淘汰期,新兴的以太网传输网络一遍火热。但是在改造的过程中工程师们也将面临着一个新的挑战——回音消除!“回音”是通讯产品及配件在实际使用的过程中,时常遇到的问题。客观地说,无论模拟式通讯、还是数字式通讯,在使用过程中,都一定存在回音的现象。因此,回音消除器产品成为了通讯业至今不息的论题。
在设计一款“回音消除”产品、或者模块化电路的时候,设计人员首先要了解“回音”产生的机理,而后从实际的条件入手,选择适合的产品方案。以下所讨论的,仅限于视频会议行业常规的使用条件下的产品。回音的产生,最早是人们在一个空旷的峡谷中喊话,会多次听到自己的声音,这种现象是“声学回音”,指声源产生后,声波在某个物体的表面得到发射,形成“二次声源”,如果声波得到多次的反射,就会形成在峡谷中喊话的效果了。中国北京天坛回音壁就是人为地采用了这种回音原理,建造出的历史景点。
在电话出现后,人们又发现,在通话过程中,会在一定的短暂延时之后,听到自己说的话。这种回音现象,我们称之为“网络回音”,特别是采用两线式的电话系统,在两条铜线上要承载双向的语音信号,在电波延时后,就会出现“二次信号”了。
通讯中的回音,如果造成“多谐波”,就会发生“自激啸叫”,影响通讯效果。但是在电话通讯中,一定水平的“网络回音”(侧音)是有 利于通话双方的沟通感觉。 目前楼宇对讲中所讨论的回音,同时包含了电路的信号延时产生的侧音和会场环境造成的声学回音两种因素,以下主要是由于声学回音Acoustic Echo造成,在下图中,解释了产生的原因:
在通讯中,室内机用户和本端用户形成了通讯的环路(Loop),一个双向的通信线路组成了一个封闭的环路。
图中所示:室内机用户的语音信号经过话筒的采集后,以数据信号的方式通过通信线路传递到室外机设备,通过扬声器播放出来;播放出来的声音和室外机用户讲话的声音同时进入话筒,形成混合信号,再通过通信线路传递给室内机用户。
经过这样的过程,室内机用户从其扬声器中听到的声音信号包括了本端用户讲话的声音和自己讲话的声音,即形成“回音”。回音问题的产生影响了通讯效果,严重的情况下会造成“啸叫”,干扰通话过程。目前,有相当一部分的软件产品采用了源自Skype的软件回音消除源码方式,来提升产品的质量。软件回音消除的方式,同样也是通过AC97音频标准,增加音频的数字处理过程,来实现回音消除的效果。对于声音的传送会造成本环节的延时,同时,在超过4用户的多用户通讯中,对语音的完整性和真实性产生影响。 而且使用软件消回音有较大的难度,一般的公司根本就没有办法拿到比较靠谱的算法,简单地调节MIC的灵敏度和喇叭的音量,甚至有些还牺牲全双工的通话指标来达到消回音的目的,这是治标不治本的方法。那么有没有一种比较完美的方法来解决目前楼宇对讲系统所遇到的难题呢?答案是肯定的。 我们都了解,声波作为一种传导波,包括两个参数,一个是波的相位、一个是波的幅度。在波的逻辑关系中,反相、等量的信号,逻辑和的结果为零。
回音消除的基本原理就是:用一个人为干预的信号波,去消除通讯过程中产生的回音信号,同时保留其它正常的语音信号,以达到通讯的正常使用。
目前各品牌回音消除器产品的方案,基本都是在会场声源的输出端,同步获取一个音频信号,对此信号做一定延时的位移+反相,同时根据使用条件的不同,将该信 号的幅度放大到“二次声源”平均的幅度值范围。处理后的信号与会场声源(话筒)输入端的信号进行逻辑加的处理,从而抵消回音信号。会场其它的语音信号,因为没有抵消信号,所以正常输入系统。这是比较简单也比较省成本的方法如下图所示:
将上图简化后
我们可以得到两个信号:一个是蓝色和红色混合的信号1,也就是实际需要发送的speech和实际不需要的echo混合而成的语音流;另一个就是虚线的信号2,也就是原始的引起回音的语音。那大家会说,哦,原来回声消除这么简单,直接从混合信号1里面把把这个虚线的2减掉不就行了?请注意,拿到的这个虚线信号2和回音echo是有差异的,直接相减会使语音面目全非。我们把混合信号1叫做近端信号ne,虚线信号2叫做远端参考信号fe,如果没有fe这个信号,回声消除就是不可能完成的任务。虽然参考信号fe和echo不完全一样,存在差异,但是二者是高度相关的,这也是echo称之为回音的原因。至少,回音的语义和参考信号是一样的,也还听得懂,但是如果你说一句,马上又听到自己的话回来一句,那是比较难受的。既然fe和echo高度相关,echo又是fe引起的,我们可以把echo表示为fe的数学函数:echo=F(fe)。函数F被称之为回音路径。在声学回声消除里面,函数F表示声音在墙壁,天花板等表面多次反射的物理过程;在线路回声消除里面,函数F表示电子线路的二四线匹配耦合过程。很显然,我们下面要做的工作就是求解函数F。得到函数F就可以从fe计算得到echo,然后从混合信号1里面减掉echo就实现了回声消除。