在即时通讯应用中,需要进行双方,或是多方的实时语音交流,在要求较高的场合,通常都是采用外置音箱放音,这样必然会产生回音,即一方说话后,通过对方的音箱放音,然后又被对方的Mic采集到回传给自己。如果不对回音进行处理,将会影响通话质量和用户体验,更严重的还会形成震荡,产生啸叫。那么如何实现回声消除技术呢!
回声消除就是在Mic采集到声音之后,将本地音箱播放出来的声音从Mic采集的声音数据中消除掉,使得Mic录制的声音只有本地用户说话的声音。
传统的回声消除都是采用硬件方式,在硬件电路上集成DSP处理芯片,如我们常用的固定电话、手机等都有专门的回音消除处理电路,而采用软件方式实现回声消除一直存在技术难点,包括国内应用最广泛的QQ超级语音,便是采用国外的GIPS技术,由此可见一般。
回声消除已经成为即时通讯中提供全双工语音的标准方法。声学回声消除是通过消除或者移除本地话筒中拾取到的远端的音频信号来阻止远端的声音返回去的一种处理方法。这种音频的移除都是通过数字信号处理来完成的。回声消除技术是数字信号处理的典型应用之一。
回声消除的基本原理是以扬声器信号与由它产生的多路径回声的相关性为基础,建立远端信号的语音模型,利用它对回声进行估计,并不断修改滤波器的系数,使得估计值更加逼近真实的回声。然后,将回声估计值从话筒的输入信号中减去,从而达到消除回声的目的。
以下列举AnyChat音视频开发系统的回声消除技术。
AnyChat回音消除效果
A用户说话
B用户Mic录制声音(包含A的声音+B的声音)
A听到B的声音(进行了回音消除,只保留B的声音)
关于噪音抑制(ANS)
AnyChat的噪音抑制技术原理是将实时采样的数字信号进行频谱分析,这样我们就能分析背景噪声响应的强度和频谱分布,然后根据这个模型就能设计一个滤波器,当有人讲话的时候,同时做信号分析,根据分析,ANC就能分析出讲话者的频谱,那么根据这些背景噪音和讲话者的频谱,这个滤波器根据两个信号的对比实时的改变,让讲话者声音频谱通过,对背景噪声的频谱进行抑制,降低其能量,比如说降低15到20个分贝,就很明显可以感觉体验到噪音抑制的效果。