下列图片如果不清楚可以直接访问我好朋友的淘宝链接,从链接中的网盘资料进行拉取。
店铺链接:首页-智能语音开发者联盟-淘宝网
产品链接:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-23672887245.16.312a7247EicLXJ&id=644546095164
效果我们在这个链接去看看吧【无标题】科大讯飞麦克风阵列回声消除展示_昊天大魔王的博客-CSDN博客
我们先举个例子。比如我们玩吃鸡手游与小伙伴开黑,如果有一个小伙伴开了外放。那么手机播放的声音大致为这个小伙伴的语音信号与吃鸡游戏的背景音、枪声等。因此手机麦克风接收到的信号也是这些声音。但是实际上你听到这个小伙伴在游戏语音里面传过来的信号时并没有他的游戏背景音,只有他说话的语音信号。那说明此时有回声消除在工作,回声消除去掉了游戏所发出的声音,让你只听到了队友的语音信号。如果队友回声消除没有开或者回声消除的效果比较差,麦克风就会反复的收到信号如下图。
正如上图红线所示,回声消除通过接入信号B来消除麦克风A+B中B的信号。因此在接入的时候一定要记得把B信号接入到回声消除系统中。这个是很多刚接触回声消除的朋友经常容易搞不懂的地方。这个接入方式通常为两种,第一是通过一转二的音频头分别接到喇叭与回声消除系统里、第二是通过喇叭接口的前端(也就是功放后端,这点在2.4中做详细说明)差分线并联到回声消除系统里。
2.1回声消除不是回声消没
只能是对麦克风录入的回声进行信号的衰减。一般情况下衰减值在10-30db之间。
2.2 回声消除是不是衰减db值越多越好?
这个不一定,主要是根据使用的场合来定。有做的比较激进的算法可以达到40db,但是会严重影响音质,导致失真。则这类音频信号不适合作为通话语音,影响语音识别率,只适合在特殊场合。
2.3 采样率16k为什么这么低,能够用吗?
正常对人声采集大部分为16khz采样率,有效带宽为8khz,已经包含足够多的信息。因为网络带宽等限制,因此做语音识别的时候不需要更高的采样率了。
2.4 回声消除参考信号的选取
最好是采用音频后端信号,也就是说功放到喇叭之间的信号。因为这个信号是最接近真实发声的信号。如果因为工程原因不能获取功放后端信号,只能获取主板音频输出到功放之间的功放前端信号的时候,那么在选取功放的时候一定要注意尽可能的保证功放上不要做音效,也就是eq。因为在做音效的过程中会导致前端信号和后端信号产生不一致的情况,这种情况下加不加回声消除就已经不太重要了。因为回采信号和实际发生的喇叭之间相差的太大了,算法无法根据一个未知的信号进行运算。就如整容前和整容后让人脸识别系统判断这是一个一样无能为力。接口示意图如下。
2.6 重低音导致回声消除效果不好
为什么在播放重低音的时候会导致回声消除效果不好。回声消除算法的核心是利用自适应滤波器和参考信号与残留回声之间的时间到达差来做一个动态的适应实现的。如果引入过多的低频信号则会干扰算法,导致算法中的参数不稳定,达不到一个很好的效果。
2.7 喇叭震动致回声消除效果不好
在安装喇叭的时候一定要注意喇叭的震动不要震到麦克风,因为震动麦克风后会让麦克风收到它不应该收到的信号。
2.8 几个喇叭就要接几路回声消除
目前我们的算法最多就可以支持两个通道的回声消除。如果喇叭左右声道不一致也就是立体声的情况,就必须要要接入两路左右声道信号。
2.9 参考信号太小或者截幅
使用 D/G 类功放滤波效果不好就经过分压接入了参考信号通道。此问题可以在调试阶段通过给功放通1KHZ正弦波同时用示波器抓滤波后的信号是否平滑加以判断。
参考信号前端分压不良导致参考信号过小或者截副,此问题可以通过保存原始音频加以判断。
2.10 通话时的使用
如果想在通话的场景使用那么就一定要明白什么叫单讲和双讲。
通俗的说单讲就是只有远端说话(就是电话对面的人在说,你不说)。因此麦克采集的语音信号只有远端的回声,不包括近端的语音。
双讲多方同时说话的场景(你跟电话对面的人一起说,比如开会)。因为多讲麦克风收进来的信号包含远端和近端的信号,两种信号混在一起,因此做回声消除就比较困难。一方面要保护近端的语音信号不被损伤,有一方面还要尽量把回声消除。所以面临这投鼠忌器的困境。一般来说如果远端回声要比近端语音高出6-8db 的情况下,如果要把远端回声消除干净则或多或少的损伤近端语音。如果远端回声要比近端语音高出18db以上,那就只能把远端回声和近端信号一起削弱。因此在回声消除的过程中,播放音量太大的时候会造成录音音量较小或者没有的情况。
2.11 如果上述还没有解决问题
进一步判断喇叭的频响以及声学结构上的问题,建议直接换个喇叭试试。上述所有问题大多集中在接线错误上,其次是回采过大。请各位工程师们一定要注意。