在嘈杂的食堂里,你坐在四个朋友中间,对面有人压低声音说了一句“明天开会”。你听见了,但也听见了餐盘碰撞和周围聊天声。若是这四位朋友都把手拢在耳朵上,同时只朝说话人方向听,再把各自听到的部分对齐后一起说出来,那句话就会被放大,而身后的吵闹因为七嘴八舌地错开,反而被压了下去。波束成形(Beamforming)干的就是这件事:把一排麦克风当作一排耳朵,让它们通过“对齐—加权—相加”,在物理空间中形成一束只对准目标声音的“听觉聚光灯”。从延迟求和到最小方差无失真响应(MVDR),再到深度学习参与的自适应波束成形,这套方法已经成为智能音箱、会议系统与助听器的核心引擎。
掌握波束成形,意味着你从“处理一段声音”升级到“处理一个声场”,这是远场语音产品中不可替代的核心能力。
目录
可视化演示
展示延迟求和波束成形时延对齐、MVDR最优滤波与空间谱估计波达方向检测,交互理解麦克风阵列语音增强原理。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+modeData.delaysum.caption+'
阵列基础:一排耳朵为什么能“听出方向”
在一场露天音乐节上,五个朋友一字排开,面向舞台。歌手开口时,站在最右边的人先听到,站在最左边的人后听到;如果歌手在正前方,大家几乎同时听到。这个先后差别虽然只有几毫秒,却被大脑用来判断方向。麦克风阵列也一样,只是把“耳朵”换成“麦克风”,把“大脑初判”换成数学运算。
麦克风阵列在一条线上等距放置 M 个麦克风。声音到达各个麦克风的时间差取决于声源方向,也取决于麦克风的间距 d。通常 d 取声波波长的一半,称为半波长间距:太小则方向分辨力弱,太大则会出现方向模糊,也就是空间混叠。常见的阵列几何还有环形、十字形等,不同几何决定了可观测的方向范围。
阵列的总长度 L 被称作孔径。孔径越大,主波束越窄,越能区分相邻方向。近似关系是:
就像卷尺越长越能测量细微角度,一排拉得越远的耳朵,也能把两束来自相邻方向的声音区分开。
- $\theta_{\mathrm{3dB}}$ 的含义主瓣的半功率点宽度,单位是弧度,代表波束在角度上的“胖瘦”。
- $\lambda$ 的含义声波波长,频率越高波长越短,同样孔径下波束越窄。
- $L$ 的含义阵列孔径,即最左端到最右端麦克风的距离。
- “$\approx$”的说明这是一个近似公式,只适用于均匀线阵在正前方的远场模型,真实方向图还会受窗函数和阵列误差影响。
延迟求和:把时间差“掰平”再相加
如果五个朋友想听清 30° 方向的声音,他们会先商量好:每个人根据自己所在位置,预估声音到达自己的时间差,然后在心里把这个“迟到”的声音往前拨。等到五个人喊出的声音步调一致,音量自然叠加;而来自其他方向的声波因为步调混乱,叠加后互相削弱。
延迟求和(Delay-and-Sum)把这个过程写成公式:设第 m 个麦克风的信号为 $x_m(t)$,目标方位角为 $\theta_0$,相邻麦克风间距 d,声速 c,则第 m 个麦克风相对参考点的时延是 $\frac{m d \sin\theta_0}{c}$。把所有信号平移后求平均:
当 $\theta_0$ 与真实目标一致时,目标信号同相相加;不一致时则被当成干扰抑制。这就是方向性的来源。
- $y(t)$ 的含义波束成形后的输出信号,也就是“齐声复述”后的结果。
- $x_m(t - \tau_m)$ 的含义第 m 个麦克风信号被向前平移了 $\tau_m$,用来抵消它相对参考点的“迟到”。
- $\tau_m$ 的含义第 m 个麦克风相对参考点的时延,由距离差除以声速得到。
- $\frac{1}{M}$ 的含义对 M 路信号取平均,保证输出幅度不会因为相加而膨胀。
- 求和号 $\sum$ 的含义把 M 路已经对齐的信号逐时刻相加,完成“同相叠加”。
最小方差无失真响应:在保护目标的同时挖出“消声坑”
延迟求和只需要知道目标方向,却无法专门在某个捣乱的方向上“挖坑”。设想指挥家在派对上发现右边 30° 有人在敲锣,他希望朋友们不仅朝主唱方向听,还要在敲锣方向把耳朵“捂住”。MVDR 给出的答案是:给每个人的耳朵装一个可调的“旋钮”,也就是复数权重。旋钮调好后,主唱方向的响应保持为 1,而其他方向的输出功率尽量小。
从数学上看,MVDR 最小化输出方差 $\mathbf{w}^H \mathbf{R} \mathbf{w}$,同时满足 $\mathbf{w}^H \mathbf{a}(\theta_0)=1$。其中 $\mathbf{R}$ 是噪声协方差矩阵,$\mathbf{a}(\theta_0)$ 是目标方向的导向矢量。解为:
因为目标方向被锁定为 1,最小化功率的压力就转移到其他方向,于是干扰方向会自然出现深度为零的凹陷,也就是零陷。
- $\mathbf{R}^{-1}$ 的含义噪声协方差矩阵的逆,相当于对噪声强的方向降权,对噪声弱的方向保留。
- $\mathbf{a}(\theta_0)$ 的含义目标方向的导向矢量,描述了目标声波在各麦克风之间的相位差。
- $\mathbf{a}^H$ 的含义导向矢量的共轭转置,用于计算投影和归一化。
- 分母的含义$\mathbf{a}^H(\theta_0)\mathbf{R}^{-1}\mathbf{a}(\theta_0)$ 是一个标量,用来把权重归一化,确保目标方向增益为 1。
- $\mathbf{w}_{\mathrm{MVDR}}$ 的含义最终使用的波束权重向量,每个麦克风信号乘上对应权重再相加。
自适应波束成形:让权重随时间“自己动”
现实中没有人固定不动。派对里有人走动、空调忽然启动、远处有人鼓掌,噪声方向一直在变。固定的一组旋钮会逐渐失灵。聪明的队长决定每隔一小段时间重新估计一次“哪些方向吵”,并微调旋钮——这就是自适应波束成形。
自适应算法使用当前输入信号和参考信号做在线更新。以最小均方(LMS)为例,用误差信号的共轭乘以输入向量 $\mathbf{x}_n$,再乘上步长 $\mu$,叠加到原权重上:
通过反复迭代,权重会逐渐逼近 MVDR 那样的最优解,从而跟踪时变噪声。
- $\mathbf{w}_{n+1}$ 的含义更新后的权重向量,用于下一帧或下一样本的波束成形。
- $\mathbf{w}_n$ 的含义当前的权重向量,代表目前各麦克风旋钮的状态。
- $\mu$ 的含义步长因子,控制每次更新的幅度。
- $\mathbf{x}_n$ 的含义当前时刻的多通道输入向量,也就是各麦克风采到的样本。
- $s_n - \mathbf{w}_n^H\mathbf{x}_n$ 的含义当前输出与期望信号的误差,误差越大,权重调整越多。
深度学习融合:让算法学会“听声辨位”
老练的指挥家经验有限。要让系统在混响和随机噪声中依然稳健,还需要一位“学徒”——深度学习模型。它不直接背公式,而是看大量“宴会现场”,学会根据多通道输入估计合适的波束权重。
深度学习波束成形有两条常见路径:一条是神经网络直接输出每个麦克风的权重;另一条是先用神经网络估计理想比掩码或空间协方差,再套用 MVDR 公式。不论哪种,核心都是让网络的参数 $\Theta$ 学习从多通道特征 $\mathbf{X}$ 到权重 $\mathbf{w}$ 的映射:
训练时直接优化增强后的语音与干净语音的误差,因此神经网络能捕捉传统公式难以建模的非线性关系,在混响环境中往往比纯经验公式更稳。
- $f_{\Theta}$ 的含义由神经网络参数 $\Theta$ 决定的映射函数,输入多通道特征,输出波束权重。
- $\mathbf{X}$ 的含义多通道输入特征,例如各麦克风信号的短时傅里叶变换谱。
- $\mathcal{L}$ 的含义训练损失,衡量增强后的输出与干净语音 $s$ 的差距。
- $\mathbf{w}_{\mathrm{NN}}^H \mathbf{x}$ 的含义用神经网络给出的权重对多通道信号做空域加权,相当于一次可学习的波束成形。
- $\|\cdot\|_2^2$ 的含义二范数平方,用来计算增强后的语音与干净语音之间的能量误差。
应用场景:从智能音箱到助听器
现在,这排耳朵已经进入客厅、会议室、口袋和汽车。智能音箱用波束成形锁定 5 米外的人声,抑制电视和厨房噪声;会议系统用它追踪发言人,让线上参会者听得更清楚;助听器用它实现方向性聆听,让老人面向朋友时忽略背后嘈杂;车载语音则用它抵消风噪和引擎声,让乘客轻声也能唤醒导航。
这些场景都可归结为提升信噪比。假设输入信噪比为 $\mathrm{SNR_{in}}$,输出信噪比为 $\mathrm{SNR_{out}}$,阵列带来的增益为:
不同场景的约束不同:智能音箱看重远场覆盖,会议系统看重实时性,助听器看重低功耗和舒适度,车载系统看重鲁棒性。但核心原理一致。
- $\mathrm{SNR_{in}}$ 的含义未经过波束成形时,单麦克风接收信号的信噪比。
- $\mathrm{SNR_{out}}$ 的含义波束成形输出信号的信噪比。
- $10\log_{10}$ 的含义把倍数换算成分贝,便于对比和工程设计。
- $\mathrm{AG}$ 的含义阵列增益,波束成形带来的信噪比提升量。
工程挑战:真实世界的“考试题目”
从排练到真实演出,会有各种意外:麦克风之间的增益不一致、摆放位置有偏差、墙面回声让同一句话在房间里“绕圈”、DSP 芯片算力有限。工程上需要一套对策。
阵列校准可以补偿麦克风之间的幅度和相位偏差;鲁棒波束成形通过对协方差矩阵做对角加载,把矩阵的“病态”修平:
实时系统还要求低时延与低算力,因此常用分帧处理、子带滤波和降采样;评价指标则包括 PESQ、STOI、SIR 等,分别衡量听感、可懂度和干扰抑制量。
---
- $\mathbf{R}$ 的含义原始噪声协方差矩阵,由观测信号估计得到。
- $\gamma$ 的含义对角加载系数,通常取很小的正数。
- $\mathbf{I}$ 的含义单位矩阵,只在主对角线上有 1,其余位置为 0。
- $\mathbf{R}_{\mathrm{DL}}$ 的含义对角加载后的协方差矩阵,条件数更健康,求解权重时更稳定。
AI 应用场景
智能音箱远场唤醒
阶段:前端信号处理(语音增强与唤醒前处理)
解决的问题:传统单麦克风在 5 米外的唤醒率急剧下降;电视、厨房噪声和混响会淹没唤醒词。波束成形将麦克风阵列变成“听觉聚光灯”,先锁定人声方向再做增强,可提升信噪比 10 dB 以上。
具体案例:在智能音箱内置 6 麦克风环形阵列,用户从任意角度说“小爱同学”;DSP 实时估计方向并扫描主瓣,同时用 MVDR 零陷压住音箱自身播放的音乐,唤醒率显著提升。
会议系统发言人跟踪
阶段:声源定位与语音增强
解决的问题:多人轮流发言时,固定波束会漏掉侧方声音。系统先利用到达时延差估计发言人方位,再动态更新波束指向,同时抑制投影仪风扇和键盘声。
具体案例:会议条形音箱摄像头一体机内置麦克风阵列,发言人在会议室走动时,算法用自适应波束连续跟踪,并配合深度模型去除混响,使远端听众听到的声音更干净。
助听器方向性聆听
阶段:可穿戴设备实时语音增强
解决的问题:老人戴助听器在餐馆中容易“听不清目标人”;助听器内置双麦克风波束成形,使用者在嘈杂环境开启“前向聚焦”,增强正前方对话者,抑制四周噪声。
具体案例:某助听器芯片在 1 ms 内完成延迟求和与自适应滤波,功耗控制在数毫瓦,让佩戴者在拥挤餐厅仍能听清家人说话。
Python 演示
import numpy as np fs = 16000M = 8d = 0.04c = 340.0dur = 0.2t = np.arange(int(fs * dur)) / fs target = 0.5 * np.sin(2 * np.pi * 700 * t)interf = 0.5 * np.sin(2 * np.pi * 300 * t) def shift_to_angle(sig, theta_deg): tau = d * np.arange(M) * np.sin(np.deg2rad(theta_deg)) / c delay = np.round(tau * fs).astype(int) sigs = np.zeros((M, len(sig)), dtype=float) for m in range(M): sigs[m] = np.roll(sig, delay[m]) return sigs x_target = shift_to_angle(target, 0)x_interf = shift_to_angle(interf, 60)noise = 0.05 * np.random.randn(M, len(t))mix = x_target + x_interf + noise def delay_sum(signals, theta_deg): tau = d * np.arange(M) * np.sin(np.deg2rad(theta_deg)) / c delay = np.round(tau * fs).astype(int) out = np.zeros_like(signals[0]) for m in range(M): out += np.roll(signals[m], -delay[m]) return out / M def snr_db(s, ref): err = s - ref return 10 * np.log10(np.sum(ref ** 2) / (np.sum(err ** 2) + 1e-12)) if __name__ == "__main__": before = mix[0] after = delay_sum(mix, 0) print("增强前 SNR:", round(snr_db(before, target), 2), "dB") print("增强后 SNR:", round(snr_db(after, target), 2), "dB")
tau = d * np.arange(M) * np.sin(np.deg2rad(theta_deg)) / c计算每个麦克风相对参考点的到达时延。sigs[m] = np.roll(sig, delay[m])用循环移位模拟声波到达不同麦克风的时间差。mix = x_target + x_interf + noise混合目标、干扰和随机噪声,构成阵列输入。out += np.roll(signals[m], -delay[m])把每个麦克风信号反向平移回参考时刻,实现“对齐”。return out / M取平均,防止多路相加后音量膨胀。snr_db(s, ref)用参考信号计算增强前后的信噪比,便于量化效果。
常见误区
误区波束成形就是把声音放大一点,我用一只麦克风加滤波器也能实现吧?
正解单麦克风只能做频率滤波,无法区分声音来自哪个方向。波束成形本质是利用多麦克风之间的相位差进行空域滤波,就像一只耳朵无法判断声源在左还是右,必须两只耳朵协作。
为何常见:因为大家熟悉的是时间域滤波(降噪),容易把空域滤波也理解成对单路信号处理。
误区把目标方向的信号对齐相加后,其他方向的噪声就完全消失了。
正解延迟求和只在偏离主瓣的方向产生相位抵消,但旁瓣仍会漏入噪声;它更像“集中注意力”,而不是“定向消音”。只有在干扰方向形成零陷的 MVDR 等算法才能更针对性地压制。
为何常见:教程图常画出一个干净的主瓣,忽略了旁瓣与栅瓣,让人误以为其余方向都被完全抑制。
误区用公式求一次权重就一劳永逸,实际效果会很好。
正解MVDR 对导向矢量误差和协方差估计非常敏感;如果目标方向估计偏差大,它可能把目标当成干扰压制掉。工程上需要对角加载、导向矢量校正等鲁棒手段。
为何常见:例题里给了准确参数,让初学者以为实际系统也一样精确。
误区有了神经网络,传统波束实现没用了。
正解深度学习负责估计更合理的权重或协方差,但仍依赖阵列结构和空域滤波;混合系统既保留物理可解释性,又能利用数据学会复杂场景的规律。
为何常见:深度学习在其他任务上“黑盒”成功,让人低估物理模型在声学中的价值。
误区堆更多麦克风,性能一定会继续提升。
正解性能还取决于阵列孔径、间距、同步精度和算法复杂度;数量增加会带来硬件成本与校准负担,实际产品需在孔径与实时性之间权衡。
为何常见:看到阵列响应公式中 M 增长使主瓣变窄,就忽略了实际噪声和失配的影响。
面试题
Q1. 波束成形最核心的物理依据是什么?
- A.多麦克风信号的相位差携带空间信息← 正确答案
- B.麦克风越多声音自然变得越大
- C.低通滤波器可以过滤高频噪声
- D.使用更大功率扬声器提升信噪比
答案:A。波束成形利用多个麦克风在同一时刻接收到同一声音的相位差,来推断声音方向和做空间滤波。单麦克风没有相位差信息,低通或增大功率都不属于空域处理。
Q2. 均匀线阵中相邻麦克风间距通常取多少以避免空间混叠?
- A.声波波长的二分之一← 正确答案
- B.声波波长的两倍
- C.声波波长的四倍
- D.任意值且不影响性能
答案:A。半波长间距是经典工程折中。间距太大会出现栅瓣,导致方向模糊;间距太小则波束太宽、方向分辨力不足。
Q3. 延迟求和波束成形中,若目标角度为 θ,各麦克风信号需要做什么?
- A.按与参考点的时延差反向平移后相加← 正确答案
- B.按随机延迟叠加
- C.先做傅里叶变换再取绝对值
- D.直接平均所有麦克风信号
答案:A。只有先按目标方向的到达时延差把信号“对齐”,目标声波才会同相叠加;随机延迟或直接平均无法利用方向信息。
Q4. MVDR 的优化目标是什么?
- A.在目标方向增益为 1 时最小化输出功率← 正确答案
- B.最大化所有方向的总功率
- C.让权重向量模长最小
- D.让每个麦克风信号完全相消
答案:A。MVDR 全称“最小方差无失真响应”,“无失真”指目标方向增益固定为 1,“最小方差”指输出功率最小,从而抑制干扰和噪声。
Q5. 为什么 MVDR 需要准确的目标导向矢量?
- A.否则目标可能被当作干扰抑制← 正确答案
- B.只影响计算速度,不影响结果
- C.导向矢量只用于延迟相加
- D.为了增大麦克风数量
答案:A。导向矢量描述目标方向在阵列上的相位关系。如果它偏差大,MVDR 会认为目标方向有能量泄漏,从而将其当作噪声压掉,造成信号自消除。
Q6. 关于自适应波束成形,以下说法正确的是?
- A.LMS 用输入信号和误差信号在线更新权重← 正确答案
- B.步长过大可能导致算法发散← 正确答案
- C.权重一旦算出就永远固定
- D.只能处理静止噪声环境
答案:AB。自适应波束成形的特点就是不断根据新输入和误差更新权重,因此可以跟踪非平稳噪声。步长过大会越过最优解,导致发散。
Q7. 对角加载对协方差矩阵的主要作用是什么?
- A.改善条件数并增强求解鲁棒性← 正确答案
- B.减小麦克风阵列的物理孔径
- C.提高声音在空气中的传播速度
- D.使目标方向变成零陷
答案:A。对角加载在协方差矩阵上叠加一个小单位阵,相当于增加一个规则的底噪,避免矩阵奇异或条件数过大,从而防止权重在导向矢量失配时剧烈抖动。
Q8. 深度学习波束成形的典型优势是什么?
- A.可从复杂混响场景中学习非线性映射← 正确答案
- B.不再需要麦克风阵列硬件
- C.无需训练数据即可端到端优化
- D.只能输出传统波束权重
答案:A。深度模型能从大量带混响和噪声的数据中学习非线性补偿,而传统方法依赖明确的物理假设。它仍然需要麦克风阵列和多通道数据,也需要训练数据。
Q9. 以下哪些属于波束成形的典型应用?
- A.智能音箱远场唤醒← 正确答案
- B.会议系统发言跟踪← 正确答案
- C.助听器方向性聆听← 正确答案
- D.图像 JPEG 压缩
答案:ABC。智能音箱、会议系统和助听器都依赖阵列多通道信息实现定向听声;JPEG 压缩处理的是图像,与声学波束成形无关。
Q10. 关于波束方向图,下列说法正确的是?
- A.孔径增大通常使主瓣变窄← 正确答案
- B.零陷可定向抑制干扰← 正确答案
- C.延迟求和可在任意方向保证零陷
- D.深度学习无法影响波束方向图
答案:AB。孔径与主瓣宽度成反比;MVDR 等算法通过优化权重在干扰方向形成零陷。延迟求和只能压低旁瓣,不能保证任意方向零陷;深度学习只要输出权重,也能改变方向图。