做为一个前端算法为核心的解决方案提供商,双麦克算法一直是咱们研究的重心。这些年,陆陆续续的花费了很多时间在上面,坎坷的研发经历,能够说是一波三折。不过,在经历了一系列山路回转以后,总算是获得了一些进展。蓦然回首,真是山穷水尽疑无路,柳暗花明又一村啊。前端
农历腊月,寒风凛冽。当大多数人都在欢天喜地过准备过大年的时候,我还为算法中的一个bug反复验证,仿真,仿真。每一座山,只有翻过去了,才知道山中的风景何如。在翻阅了大量的资料,尝试了不一样的beamforming算法以后,发现这块真没有合适的开源算法可以彻底匹配客户场景的。只能本身写了,这个算法是这个和结构环境强相关的,不是纯算法的东西,是没法用纯算法仿真的很好的。不少的beamforming算法,各项指标仿真都很好,但是一上实际环境,让我大跌眼镜,怎么会那么差呢?后来分析才知道,这些都是理想环境的,实际的考虑到麦克风的各类干扰和电路模型,这种算法,实际环境中哪会有这么理想的模型呢?算法
通过反复的调试和测验,自研的双麦克风降噪算法算是可以在外壳比较小的样机上实现了。这下面是处理前和处理后的音频数据分析:测试
前面是戴上耳机的人本身说话,后面一段是周围的人在说话,能够看出,可以拾取说话的人声,过滤掉周围的人声。初步测试下来,降噪效果是杠杠的。经过客户的反馈来看,虽然还有一些小bug须要修补,整体来讲效果仍是至关不错的。调试
频谱图能够看的更清楚一些。orm
经过反复的测试和调研,笔者对双麦克风降噪有了更深的理解。发现双麦克风降噪的缺点和它的优势同样明显。blog
优势:指向性好,消耗资源相对少的状况下,效果可以达到很是好,而且降噪效果也是出奇的好,在某些场景下有着明显的优点。资源
缺点:对设备的两个麦克风的距离要求比较高。对声学结构要求比较高,场景要求苛刻,两个麦克风不能距离太近,而且两个麦克风距离说话人的距离不能太远,太远了角度就很小了,根本没法分辨出来。数据分析