联系人:徐经理
手机:13609715026(技术咨询)
电话:020-39985615
Email:184049149@qq.com
Q Q :2397159370
网址:www.gxdsp.com
地址: 广州市番禺区洛浦街沿沙路51号瑞方医疗产业园A3栋203广州市番禺区洛浦鑫联音技术服务中心
要消除回声,其实真的很难。这有点像把红墨水倒进蓝墨水里,混合在一起,然后要求把红墨水从蓝墨水中分离出来。回声消除的工作就是要把没有任何区别的远端回声和近端声音分离。这项工作其实比想象中要难得多。
2)单讲
只有远端说话的情形。由于只有远端说话,从麦克风采集进来的语音信号只包含远端的回声,而不包含近端的语音。单讲情形下的回声消除相对比较容易处理,可以采取比较激进的处理策略。如果确定单讲是高概率事件的情况下,可以直接地把所有语音信号都干掉,然后适当地填充舒适噪音。一般来说,在单讲情形下,用线性自适应滤波器跟踪回声馈路,可以很好地消除回声,大概能够抑制掉18dB的回声。
3)双讲
有多方同时说话的情形。由于有多方同时说话,从麦克风采集进来的语音信号就包含了远端的回声和近端的语音,两者混合在一起。双讲情形下的回声消除就十分困难:一方面要保护近端的语音信号不被损伤,另外一方面还要尽量地把回声消除干净。这种情形下,可以采取比较激进的策略,把远端回声和近端语音一起干掉,然后适当地填充舒适噪音。
自适应滤波器收敛后得到的就是需要求解的回声馈路函数fe=f(fs)。当滤波器收敛稳定之后,输入远端声音信号fs,就可以输出相对准确的对远端回声信号的估计值fe。把采集到的信号减去远端回声信号的估计值fe,就得到实际要发送的语音信号。
实现线性自适应滤波器有两个难点:
1)快速收敛
在收敛阶段,采集到声音信号要求只有远端的回声信号,不能混有近端的语音信号。近端的语音信号和远端的参考语音信号没有相关性,会对自适应滤波器的收敛过程造成扰乱。因此,即构科技的策略是让自适应滤波器收敛的时间尽量地短,短到收敛过程的时间段里采集进来的信号只有远端的回声信号,这样自适应滤波器收敛的效果就会很好。在收敛好之后,滤波器就稳定下来了,就可以用来过滤远端的回声信号了。
2)动态自适应
在收敛好稳定下来以后,自适应滤波器还要随时自动适应回声馈路的变化。自适应滤波器要能够判断回声馈路是否发生变化,并且能够重新学习和对其进行建模,不断地调整该滤波器的系数,进入一个新的收敛过程,较后快速地逼近新的回声馈路。这种情况在手游的场景中是十分常见的,用户拿着手机边走边玩游戏,游戏语音周遭的回声馈路时刻发生着变化,自适应滤波器就要时刻自动重新收敛来适应新的回声馈路。
非线性处理
1)残留回声处理
通过自适应滤波器来消除回声,并不能百分之一百把回声消除干净,还需要进一步消除残留的回声。
一般来说,残留回声消除的策略是利用自适应滤波器处理后的残留回声与远端参考语音信号的相关性,进一步消除残留回声。相关性越大,说明残留回声越多,需要对残留回声进一步消除的程度越大;反之,相关性越小,说明残留回声较少,需要对残留回声进一步消除的程度越小。
2)非线性剪切处理
在完成了上述处理以后,其实剩下的回声一般都比较小了,但不排除仍有一些残留的可以感知的小回声。为了进一步消除这些小回声,要根据前面处理得到的衰减量来做进一步的抑制处理。
在游戏实时语音SDK中,回声消除是客户关注的一个技术特征。与此同时,回声消除也是游戏语音SDK中有难度的技术,没有之一。在以用户体验为生命线的游戏行业,特别在手游做得越来越重的今天,回声消除技术做得好不好,往往决定了用户是否继续玩你的游戏。