
一、0-180° 输出背后的问题AR-1106 是声源定位模组0-180° 半平面定位5 米最远触发距离9600bps 串口输出角度参数16 进制例如 90° 输出 0x5A内置 SG90 舵机驱动带 AI 降噪。从系统集成角度看它的输出很简洁一个字节的角度值。但如果要判断这个角度值有多准、两个相邻方向能不能分开就必须回到定位的物理原理。本文讨论的核心是一个常被忽略的事实双麦时延定位的角度分辨率不是均匀的——正前方很粗两侧很细差异可以达到数倍。二、从时延差到角度的映射双麦克风定位的基本原理是测量声波到达两个麦克风的时间差TDOA。设两个麦克风间距为 d声速 c ≈ 343m/s声源方位角为 θ以两麦连线的垂直方向为 90°远场平面波假设下τ (d / c) · cos(θ)其中 τ 是时延差。这个关系是非线性的关键就在 cos 函数上。对角度求导dτ/dθ -(d/c)·sin(θ)。这个导数表示角度变化 1 度时延差变化多少它决定了定位的灵敏度θ 90°正前方sin(90°) 1灵敏度最大θ 45° 或 135°sin 0.707灵敏度降为 70.7%θ 10° 或 170°接近两麦连线方向sin ≈ 0.17灵敏度只有 17%θ 0° 或 180°sin 0灵敏度为零注意这里的灵敏度与最终的角度分辨率成反比关系灵敏度高的地方同样的时延测量误差对应更小的角度误差。三、量化一下角度误差有多大时延估计的精度受采样率限制。假设麦克风间距 d 60mm采样率 16kHz采样周期 62.5μs。声波跨越 60mm 需要 60/343000 s ≈ 175μs对应约 2.8 个采样点。也就是说从 0° 到 180° 的完整范围只对应约 ±2.8 个采样点的时延差——整数采样精度下只有约 6 个可分辨的档位这显然不够。因此实际实现必然使用亚采样点插值GCC-PHAT 的互相关峰值抛物线插值或者相位谱拟合。良好实现可以做到 1/10 采样点的时延分辨率即 6.25μs。把这个时延分辨率折算成角度误差 Δθ ≈ Δτ·c / (d·sin θ)θ 90°Δθ ≈ 6.25e-6 × 343 / 0.06 ≈ 0.036 rad ≈ 2.0°θ 45°Δθ ≈ 2.9°θ 20°Δθ ≈ 5.9°θ 10°Δθ ≈ 11.7°θ 5°Δθ ≈ 23°结论很清楚正前方附近可以做到 2° 量级的分辨率接近侧向时误差急剧放大到十几度甚至更多。所以0-180° 定位这个描述在两端是打折扣的实际可用的高精度区间大约在 30°~150° 之间。这也解释了为什么这类模组在实际部署中通常建议把设备正面朝向主要活动区域——不是习惯问题而是让目标落在灵敏度最高的角度区间。四、增大间距能改善吗空间混叠的限制从公式看增大麦克风间距 d 可以提升角度分辨率——d 增大一倍同样时延误差对应的角度误差减半。但 d 不能无限增大限制来自空间混叠。当声波半波长小于麦克风间距时相位差会出现 2π 的模糊无法唯一确定方向。混叠频率为 f_alias c / (2d)d 40mmf_alias ≈ 4.3kHzd 60mmf_alias ≈ 2.9kHzd 100mmf_alias ≈ 1.7kHz超过混叠频率的频段无法用于相位法定位。语音的能量主要在 300Hz~3.4kHz但清辅音能量在 4kHz 以上。若间距取 100mm可用频段被限制在 1.7kHz 以下剩下的主要是元音的基频和低阶共振峰——这部分能量足够做定位但对辅音丰富的短命令词可用信息减少。实际设计通常在 40~80mm 之间取折中既保证足够的时延差可测量又把混叠频率推到语音主要能量带之上。这是一个典型的提高分辨率与扩展可用带宽之间的取舍。五、混响与噪声对定位的影响上面的分析假设自由场直达声。实际房间里混响会产生多条到达路径互相关函数出现多个峰可能选错峰导致角度跳变。GCC-PHAT相位变换加权广义互相关是应对混响的常用方法它对互相关的频域表示做幅度归一化只保留相位信息使得强反射不会因为幅度大而主导峰值。代价是低信噪比时性能下降——因为归一化同时放大了噪声频段的贡献。AR-1106 规格里提到内置 AI 降噪有效过滤环境噪音和无关对话嘈杂环境下仍稳定。降噪在定位链路里的作用与在通话链路里不同这里它的价值主要是提高时延估计的可靠性即让互相关峰更尖锐、更少假峰。但要注意如果降噪对两个通道施加了不同的时变增益反而会破坏通道间的相位一致性损害定位精度。所以用于定位的降噪必须是双通道联合处理、保持相位关系的不能是两路独立处理。5 米这个触发距离的限制也来自同样的机理。距离越远直达声与混响声的比值越差互相关峰越弥散。超过临界距离后定位角度开始出现随机跳变而非缓慢漂移——这是混响主导的典型表现。六、串口输出的量化精度AR-1106 通过 9600bps 串口输出 16 进制角度值90° 对应 0x5A十进制 90。这说明角度以 1° 为量化步长用单字节表示 0~180。1° 的量化步长与前面算出的物理分辨率正前方约 2°侧向十几度相比是足够细的——量化不是精度瓶颈。这是一个合理的设计选择量化步长应该比物理精度细一档避免量化本身成为额外误差源但也不必过细造成传输浪费。9600bps 的波特率对应每字节约 1.04ms含起止位共 10 位。若每次定位输出几个字节的帧传输耗时在几毫秒量级相对于声源定位本身的响应时间需要累积若干帧音频通常几十到几百毫秒可以忽略。所以 9600 这个偏低的波特率不构成瓶颈反而在长线传输和抗干扰上有优势——低波特率对线缆质量和共模干扰的容忍度更高这在工业现场是实际的好处。七、舵机联动的系统约束AR-1106 内置 SG90 舵机驱动可直接驱动云台转向声源。这部分的主要约束不在算法而在电气。规格里明确提示SG90 启动电流约 800mA建议外部 1A-2A 5V 电源独立供电避免 AR1106 供电不足重启。这条提示背后的机理值得说清楚。舵机是感性负载加机械负载启动瞬间电流冲击大且上升沿陡。如果与模组共用供电会造成两个问题电压跌落800mA 冲击在供电内阻和线缆电阻上产生压降可能把模组供电拉到欠压复位阈值以下表现为一转就重启。噪声注入舵机的 PWM 驱动和电机换向噪声通过电源耦合进入麦克风偏置和模拟前端。定位依赖两通道的相位一致性任何注入的共模/差模噪声都会劣化时延估计。正确做法是舵机独立供电、地在电源侧单点汇合、PWM 信号线远离麦克风线。这里还有一个容易被忽略的时序问题舵机转动时的机械振动会通过云台结构传到麦克风此时的定位结果不可信。合理的控制策略是在舵机运动期间暂停定位输出运动结束并稳定若干毫秒后再恢复否则容易形成转过头再转回来的振荡。八、唤醒词设计的声学依据AR-1106 支持自定义命令词单次最多 10 条规格给出了一组约束建议 4-6 字、4 字最佳禁止重叠音避免口语化词汇避免多音字避免叠字和连续零声母词词条之间仅一字不同时该字避免放最后一位。这些规则都有声学识别上的依据4-6 字词越长声学特征越丰富误唤醒率越低但太长会增加响应延迟和用户负担。4 字是汉语的自然韵律单位。避免叠字和零声母叠字的重复结构容易与背景语音的周期性混淆零声母以元音开头缺少清晰的起始边界端点检测容易出错。差异字不放最后词尾往往落在语句末尾能量衰减、可能被截断此处的区分性最弱。把区分性关键音放在词首或词中更可靠。避免多音字同一文本对应多种发音声学模型需要覆盖多种模式判决门限被迫放宽误唤醒上升。九、适用与边界AR-1106 适合的场景需要设备朝向说话人的交互终端、声源跟随监控、语音机器人、互动展示装置、以及需要粗略方位信息的设备异响定位。它的边界也比较明确半平面 180° 覆盖意味着无法区分前后双麦阵列的固有模糊5 米以内、混响不重的环境是可靠工作区角度精度在正前方最好、两侧显著变差同时存在多个声源时无法分离输出的是能量占优的那个方向。如果应用需要全 360° 覆盖或多声源同时定位需要的是三麦以上的阵列双麦在原理上做不到。选型前把这两个边界确认清楚可以避免大部分预期落空。