一、问题的提出:同一组麦克风,两种互相冲突的诉求
在免提通话与语音交互设备里,麦克风阵列的信号往往同时承担两件事:一条路要把语音送去增强、编码、识别,另一条路要用来估计说话人方向。免提场景的核心痛点是"远、乱、混"——拾音距离从 10cm 拉到 5m,直达声按距离衰减,环境噪声与房间混响同时抬升,语音链路必须靠深度降噪才能保住可懂度。
但方向估计的需求恰好相反。AR-1106 是以声源定位(DOA)为主的模组,输出 0–180° 半平面角度,串口 9600bps 以十六进制回传(90° 对应 0x5A),并内置 SG90 舵机驱动带动云台或机器人转向。它的角度精度来源于两个通道之间的相对时延,而不是单通道的听感。于是就有了一个容易被忽略的架构问题:定位支路能不能直接吃降噪之后的信号?本文的结论是不能,并给出理由与量化边界。
二、原理拆解:降噪对互相关的破坏发生在哪里
TDOA 类算法(GCC 及其 PHAT 变体)本质上是在两通道互谱上找相位斜率对应的峰值。若把降噪抽象成逐帧逐频点的实增益Gk(t),理论上实增益不改变相位,看起来无害。问题出在实现细节上:
- 增益的时变性:掩蔽/谱减的增益随帧跳动,等效于在互相关积分窗内做了非平稳加权。原本"有效带宽 B 上均匀积分"的假设被打破,峰值展宽甚至偏移。
- 两通道增益不一致:若左右通道各自独立跑降噪,噪声估计与门控决策必然不同步,互谱幅度不再是两路同源信号的乘积,PHAT 白化会把低信噪频点的相位噪声按同样权重放大。
- 非线性残留:深抑制状态下的音乐噪声、谐波再生属于非线性效应,两通道的非线性各不相同,这部分误差无法用"实增益不改相位"来豁免。
- AGC 与静音门:AGC 的攻击/释放常数、静音门的开合时刻若不共享,会在通道间引入随时间漂移的幅度差,直接体现为互相关峰值的抖动。
因此工程上的常规做法是把链路劈开:定位支路只保留线性前端(隔直、抗混叠、固定或双通道联动的增益),降噪与后处理放在语音输出支路。若受成本限制必须共享一份处理后信号,最低要求是两通道强制共用同一增益因子与同一门控决策,把通道间不一致压到可接受范围。
三、指标解读:45dB 与 90dB 抑制深度在定位上的代价
AR-1106 所在产品族的 AI 降噪抑制深度覆盖 45–90dB 区间。对语音链路,45dB 大体是"背景明显变干净",90dB 已接近把噪声段压到底噪的静音门效果。但换成定位视角,两者的差别要另算:
- 抑制越深,时变增益的动态范围越大,非平稳加权越剧烈,互相关方差随之上升。
- 90dB 深抑制会让噪声主导的帧被整体压平,这些帧对时延估计的贡献几乎归零。时延估计的方差下界近似 στ ∝ 1/(Beff·√(T·SNR)),有效观测时长 T 被"抽掉"意味着方差恶化,表现为角度输出跳动而非偏置。
- 距离维度上这个矛盾更尖锐:模组拾音范围 1–5m、最远触发距离 5m,5m 处直达声占比下降,语音链路更需要深降噪,定位链路却更需要完整的观测帧。两条路的最优抑制深度根本不在同一档位。
相比之下,9600bps 的串口输出并不是瓶颈:一帧角度报文仅十余字节,理论帧率有数十帧每秒的余量。限制跟随速度的是估计方差与平滑窗的耦合,而不是链路带宽。
四、设计取舍:为什么做成"独立定位模组 + 角度输出"
把定位单独做成一颗模组,而不是塞进通话 DSP,是上面这条约束的直接结果:
- 信号链解耦:定位模组内部保留线性前端,通话模组专注 AEC 与深度降噪,两边各自按自己的目标调参,避免互相牵制。
- 输出角度而非音频:串口十六进制角度对接单片机或 PLC 的代价极低,省掉了 I2S 音频总线的时钟域同步与采样率协商问题。代价是上位机拿不到定位支路的原始音频,无法在系统侧复核判决依据。
- 内置舵机驱动的边界:机械转向成本低,但 SG90 启动电流约 800mA,堵转更高。规格里明确建议外接 1A–2A 的 5V 独立供电,否则电源跌落会把模组拉进复位。功率负载与信号处理同板,本身就是一次取舍。
- 0–180° 半平面:双麦线阵存在前后镜像模糊,几何上无法区分对称方向,做全向覆盖需要三麦以上或加背板遮挡,这是体积与成本的边界。
- 命令词作为触发门:命令词需定制、单次最多 10 个、建议 4–6 字并规避重叠音与多音字。用命令词而非常开定位,是在多声源环境下换取判决确定性,代价是必须先唤醒。
五、适用范围与局限
这种架构适合单说话人为主、混响不过分、需要机械跟随的场合:语音跟随监控、语音机器人与互动玩具、智能追踪终端、设备异响定位、工业声源监测等。选型时要正视几处硬边界:
- 多人同时说话时只输出能量占优方向,没有多目标分离能力;
- 双麦线阵无仰角信息,只能给方位;
- 房间混响超过临界距离后首峰未必是直达声,角度会向反射方向偏;
- 深降噪与定位精度的矛盾必须靠支路分离解决,靠调参很难同时兼顾;
- 舵机机械回差与供电裕度共同决定角度重复性,机械误差往往大于算法误差。
落到实现层面,一份务实的分工是:定位支路保持浅降噪或纯线性、两通道共享增益决策;语音支路按场景放开抑制深度;角度输出侧再叠加死区与速率限制,把剩余抖动挡在机械动作之前。