音箱回声消除方法及系统技术流程:麦克风阵列采集音频信号幅度特征分析详解

很多喜欢玩直播、录歌或者开线上会议的朋友,肯定都遇到过恼人的回声问题。要么是自己说话这边,音箱放出来的声音又被麦克风收进去,循环出来嗡嗡的闷响,要么是远端通话对方的声音从本地音箱出来,再传到麦克风送回去,听得人耳朵疼。解决这个问题最常用的技术,就是回声消除,而现在主流的方案里,麦克风阵列加幅度特征分析,是效果很稳定的组合。

要讲清楚整个技术流程,得先从最开头的信号采集说起。以前回声消除大多用单个麦克风,遇到环境里其他杂音干扰,很容易把回声和正常说话声混在一起分不出来。现在大多用麦克风阵列,说白了就是好几个麦克风按照固定的位置摆好,一起采集声音信号。

不同位置的麦克风,收到同一个声音的时间和幅度都会有细微差别。比如你对着阵列说话,嘴巴离哪个麦克风近,哪个麦克风收到的你的声音幅度就更大,延迟也更小。而音箱出来的回声,是从播放端出来传播到每个麦克风的,路径不一样,幅度特征自然和你的人声不一样。这就是为什么用阵列采集,能给后面的分析省好多事。

采集完信号之后,第一步要做基础的预处理,不会直接就拿去分析。刚采到的原始音频信号,里面混着底噪、电路干扰这些没用的信号,得先过滤掉。常见的就是用滤波器把超出正常人声频段的杂信号去掉,然后再把每个麦克风的信号做幅度校准,避免某个麦克风本身灵敏度太高或者太低,影响后面的分析结果。

预处理做完,就到了核心的幅度特征分析这一步。很多人会好奇,幅度特征到底是什么?其实说通俗点,就是声音信号大小的变化规律。我们正常说话的时候,声音幅度是跟着语调、内容不断变化的,一句话里有重音有轻声,起伏很明显。而回声呢,它本质是音箱播放出来的信号,它的幅度变化其实是跟着播放端走的,和我们当前采集到的人声变化规律对不上。

举个例子,你现在开线上会议,你这边静音没说话,那你本地采集到的信号,基本只有对方从音箱放出来的声音,这部分全都是要消除的回声。如果你开始说话,你的人声幅度会突然升高,回声的幅度是跟着对方的讲话节奏走的,不会和你的人声同步升高。幅度特征分析,就是把每个时间点上,不同麦克风信号的幅度变化统计出来,找出来哪些幅度变化符合回声的规律,哪些符合人声的规律。

具体怎么做呢?一般会把音频分成一小段一小的,每段大概十几毫秒,逐段分析。对每一段信号,计算每个麦克风采集到的信号幅度的平均值、峰值、还有和前后段的变化差。比如正常近端人声,因为说话人离麦克风阵列近,主麦克风的幅度峰值会明显高出其他麦克风很多。而回声是从音箱过来的,传播距离远,不同麦克风收到的回声幅度差会小很多,这个差异就是区分的关键依据。

分析完幅度特征,接下来就是做初步的信号分离。我们会根据幅度特征的不同,把采集到的混合信号分成两部分,一部分是我们需要保留的目标人声,另一部分是判定为回声的干扰信号。这里要提一句,只靠幅度特征还不够,现在一般会结合自适应滤波来调整,不过幅度特征分析是给滤波提供初始判断的基础,能大大加快自适应滤波的收敛速度,不会刚开口的时候还留着明显回声,得等好几秒才消掉。

分离完回声信号之后,不是直接把回声减掉就完了,还要做一步尾端处理。因为声音在房间里传播的时候,会有反射,就算播放端停下了声音,余响还会在房间里飘一会儿,被麦克风收到。这部分尾回声幅度比较小,很多旧的消除技术会漏掉,听起来还是闷闷的有混响。而依靠之前做好的幅度特征分析,我们能提前预判出余响的幅度范围,把这部分小幅度的信号也对应减掉,不会残留。

处理完之后,得到的就是消除了回声的干净音频信号,再传给后续的模块,比如传给通话远端,或者存成录音文件。整个流程走下来,从采集到出结果,延迟一般都在几十毫秒以内,普通人完全感觉不到卡顿,不管是开实时会议还是直播,都不影响正常交流。

可能有人会问,这种方法比普通的单麦克风回声消除好在哪里?举个实际场景,你在家开视频会,音箱放在电脑桌的一侧,你坐在桌子前面说话,单麦克风只能收到一个信号,很难分清楚你说话的声音和音箱出来的回声,有时候消多了会把你的声音也消掉,说话断断续续,消少了又留回声。

用麦克风阵列加幅度特征分析的话,五个麦克风摆在不同位置,你嘴巴正前方的麦克风收到你的人声幅度比其他位置高两三倍,音箱那边出来的回声,在正对你的麦克风上幅度反而更低,一对比就能分清楚,消回声的时候不会错伤你的人声,稳定性高很多。

当然,这个技术也不是完美的,遇到特别大的房间,混响特别严重的情况,回声的幅度变化会变得很复杂,有时候会和人声调性,还是会有少量残留。不过现在很多技术团队也在优化,把幅度特征和AI的语音识别结合起来,先靠AI分出哪段是人声哪段不是,再用幅度特征做精细调整,效果比之前又好了不少。

总的来说,从麦克风阵列采集信号,预处理,再到逐段做幅度特征分析分离信号,最后消除回声输出干净信号,整个流程现在已经很成熟了,我们平时用的智能音箱、视频会议设备、直播声卡,大多都在用这套技术方案,只是我们平时用的时候感觉不到,只知道回声没了,体验好了而已。

音箱回声消除,回声消除方法,回声消除系统,麦克风阵列,音频信号采集,幅度特征分析,音频信号处理,回声消除技术,麦克风阵列采集,音频特征分析

[Q]:什么是音箱回声?
[A]:音箱回声是指音箱播放出的声音被麦克风重新采集,再次传输或播放产生的循环重复杂音,常见于线上会议、直播等场景。
[Q]:为什么麦克风阵列比单麦克风更适合做回声消除?
[A]:麦克风阵列由多个不同位置的麦克风组成,不同位置采集到的人声和回声的幅度差异更明显,更容易区分目标人声和回声信号,提升消除准确度。
[Q]:回声消除流程里,音频信号预处理是做什么的?
[A]:预处理主要是过滤原始音频里的底噪、电路干扰等无效信号,同时校准每个麦克风的信号幅度,避免因为麦克风灵敏度差异影响后续的分析结果。
[Q]:幅度特征分析到底分析什么内容?
[A]:幅度特征分析主要是统计不同时间段、不同麦克风采集到的音频信号的幅度变化规律,通过人声和回声不同的幅度变化差异,区分出目标信号和回声信号。
[Q]:幅度特征区分人声和回声的核心依据是什么?
[A]:目标人声离麦克风阵列更近,主麦克风采集到的人声音幅度峰值会远高于其他麦克风;而回声从音箱传播而来,不同麦克风采集的回声幅度差更小,变化规律也和人声不同。
[Q]:什么是回声尾鸣,幅度特征分析能解决吗?
[A]:回声尾鸣是播放端停止发声后,房间反射产生的残留余响,这部分余响幅度较小,依靠幅度特征分析可以提前预判其幅度范围,更好地消除残留尾回声。
[Q]:麦克风阵列加幅度特征分析的回声消除方案,适合哪些场景?
[A]:这套方案目前广泛用于线上视频会议、直播录音、智能语音交互、视频通话等常见的音频场景,稳定性和消回声效果都比较好。
[Q]:这套回声消除方案有没有局限性?
[A]:在空间特别大、混响非常严重的房间里,回声幅度变化会变得复杂,偶尔会和人声特征混淆,留下少量回声残留,目前结合AI优化能改善这个问题。
share