2、数据采集避坑:麦克风阵列选型、远场/近场数据比例、信噪比控制、常见噪声类型(空调、风扇、厨房)、数据标注的坑

数据采集这件事,说白了就是决定你模型上限的环节。我见过太多团队,模型结构调得飞起,最后上线一测,唤醒率直接腰斩。为什么?数据源头就歪了。这一章我把这些年踩过的坑、流过的泪,都给你掰开揉碎讲清楚。

2.1 麦克风阵列选型:不是通道越多越好

很多人一上来就问:「我要做唤醒词,是不是用 8 麦阵列最好?」我的回答是:不一定。你得先想清楚你的产品形态。

阵列类型 通道数 适用场景 我的建议
单麦 1 近场、耳机、遥控器 成本最低,但远场基本没戏
双麦线阵 2 智能音箱、床头钟 能做简单波束成形,性价比高
4 麦环形 4 中高端音箱、车载 我最常用的方案,均衡
6-8 麦环形 6-8 会议设备、机器人 定位精度高,但数据复杂度翻倍
我曾经踩过的坑: 有个项目用了 8 麦阵列,结果数据采集时没考虑通道一致性。训练出来的模型,在某个特定角度唤醒率直接掉到 30%。后来排查才发现,是其中两个麦克风的灵敏度偏差超过了 2dB。所以,选型之后一定要做通道校准。

2.2 远场/近场数据比例:黄金分割在哪?

这个问题我每次培训都会被问到。我的经验是:远场数据至少要占到 60% 以上。为什么?因为近场数据太好收了——你拿个手机对着嘴录,信噪比轻松 30dB+。但真实场景呢?用户可能在 3 米外、5 米外喊你的设备。

我个人习惯的比例是这样的:

  • 近场(0-0.5m): 20% —— 用于保证基础唤醒率
  • 中远场(0.5-2m): 50% —— 主力数据,覆盖大多数使用场景
  • 远场(2-5m): 30% —— 决定模型上限,这部分最难收
一个小技巧: 远场数据不要只录「安静环境下的远场」。你想想看,用户离得远的时候,往往环境也更嘈杂。所以远场数据一定要搭配噪声一起录,否则模型学到的只是「音量变小」而已。

2.3 信噪比控制:别让模型学歪了

信噪比(SNR)这个指标,很多人只关注平均值。但真正决定模型鲁棒性的,是 SNR 的分布。我见过一个团队,所有训练数据的 SNR 都在 15-20dB 之间,模型在实验室跑得飞起。一上线,用户家里 SNR 只有 5dB,直接崩了。

我建议的数据 SNR 分布:

SNR 范围 占比 说明
高 SNR(>20dB) 20% 近场、安静环境
中 SNR(10-20dB) 50% 日常家庭环境
低 SNR(0-10dB) 30% 厨房、空调旁、风扇前
核心原则: 宁可 SNR 分布宽一点,也不要集中在某个区间。模型没见过低 SNR 场景,它就学不会「在噪声中提取唤醒词」这个能力。

2.4 常见噪声类型:空调、风扇、厨房

说到噪声,很多人第一反应是「加白噪声」。嗯,这其实是个误区。真实世界的噪声哪有那么温柔?我给大家列几个最要命的噪声类型:

  • 空调噪声: 低频稳态,频谱集中在 100-500Hz。特点是「嗡嗡嗡」一直有,容易和唤醒词的元音部分混淆。我有个项目,唤醒词是「小爱同学」,结果空调一开,误唤醒率翻了三倍。
  • 风扇噪声: 中频旋转噪声,有周期性。比空调更麻烦,因为它的频谱会随着转速变化。你想想看,风扇开一档和三档,噪声特征完全不一样。
  • 厨房噪声: 这是最复杂的。油烟机、水龙头、切菜声、碗碟碰撞声……全是瞬态冲击噪声。我建议厨房场景的数据至少要占整体噪声数据的 15%,否则模型在厨房里基本是聋的。
  • 其他常见噪声: 电视声、马路噪声、多人说话声(babble noise)、宠物叫声。
注意: 不要只录单一噪声。真实场景是多种噪声叠加的。比如「开着空调看电视」,这种复合噪声场景一定要覆盖到。

2.5 数据标注的坑:你以为标对了,其实全错了

数据标注,看起来最简单,实际上坑最多。我来说几个真实案例。

第一个坑:标注边界不一致。 唤醒词「你好小明」,有的人从「你」开始标,有的人从「你」之前 100ms 开始标。模型学到的就是「边界混乱」。我建议统一标准:唤醒词起始点前保留 200ms 静音段,结束点后保留 300ms。这样模型才能学会「什么时候该开始听」。

第二个坑:标注人员的主观性。 同一个音频,不同标注员可能给出不同的标签。尤其是「这个算不算唤醒词?」——用户说了一半被打断,算不算?我的做法是:建立标注规范文档,并且做交叉验证。至少两个人标注同一份数据,不一致的地方由专家仲裁。

第三个坑:负样本标注。 很多人只关注正样本(唤醒词),忽略了负样本(非唤醒词)。但负样本才是决定误唤醒率的关键。我建议负样本至少是正样本的 3-5 倍,而且要覆盖各种「听起来像唤醒词」的发音。

我的个人习惯: 标注完成后,我会随机抽 5% 的数据自己听一遍。不是为了挑刺,而是为了感受数据质量。有一次我听完发现,标注员把「你好小兵」标成了「你好小明」——这两个词在模型眼里可完全不一样。

2.6 知识体系总览

下面这张图,我把数据采集的核心环节串起来了。你可以把它当作一个检查清单:

数据采集核心流程与避坑点 数据采集 麦克风选型 远/近场比例 信噪比控制 噪声类型 通道数 ≠ 性能 必须做通道校准 远场 ≥ 60% 远场必须带噪声 SNR 分布要宽 低 SNR 占 30% 空调/风扇/厨房 复合噪声必须覆盖 数据标注(最大坑区) 标注边界统一 交叉验证 + 专家仲裁 负样本 ≥ 正样本 3 倍 核心原则:数据质量 > 数据数量,宁可少也要精

这张图把整个数据采集的流程串起来了。从麦克风选型开始,到远/近场比例、信噪比控制、噪声类型,最后落到数据标注。每一个环节都有对应的避坑点。我建议你每次做数据采集前,都拿这张图过一遍,能省掉很多后期返工的痛苦。