Fork me on GitHub

前记

  作为一个前端算法为核心的解决方案提供商,双麦克算法一直是我们研究的重心。这些年,陆陆续续的花费了不少时间在上面,坎坷的研发经历,可以说是一波三折。不过,在经历了一系列山路回转之后,总算是得到了一些进展。蓦然回首,真是山穷水尽疑无路,柳暗花明又一村啊。

 

调试历程

  农历腊月,寒风凛冽。当大多数人都在欢天喜地过准备过大年的时候,我还为算法中的一个bug反复验证,仿真,仿真。每一座山,只有翻过去了,才知道山中的风景何如。在翻阅了大量的资料,尝试了不同的beamforming算法之后,发现这块真没有合适的开源算法能够完全匹配客户场景的。只能自己写了,这个算法是这个和结构环境强相关的,不是纯算法的东西,是无法用纯算法仿真的很好的。很多的beamforming算法,各项指标仿真都很好,可是一上实际环境,让我大跌眼镜,怎么会那么差呢?后来分析才知道,这些都是理想环境的,实际的考虑到麦克风的各种干扰和电路模型,这种算法,实际环境中哪会有这么理想的模型呢?

 

效果展示

 经过反复的调试和测验,自研的双麦克风降噪算法算是能够在外壳比较小的样机上实现了。这下面是处理前和处理后的音频数据分析:

前面是戴上耳机的人自己说话,后面一段是周围的人在说话,可以看出,能够拾取说话的人声,过滤掉周围的人声。初步测试下来,降噪效果是杠杠的。通过客户的反馈来看,虽然还有一些小bug需要修补,总体来说效果还是相当不错的。

   频谱图可以看的更清楚一些。

优缺点总结

  通过反复的测试和调研,笔者对双麦克风降噪有了更深的理解。发现双麦克风降噪的缺点和它的优点一样明显。

优点:指向性好,消耗资源相对少的情况下,效果能够达到非常好,并且降噪效果也是出奇的好,在某些场景下有着明显的优势。

缺点:对设备的两个麦克风的距离要求比较高。对声学结构要求比较高,场景要求苛刻,两个麦克风不能距离太近,并且两个麦克风距离说话人的距离不能太远,太远了角度就很小了,根本无法分辨出来。

posted on 2021-04-06 10:53  虚生  阅读(1572)  评论(0编辑  收藏  举报