音频基础:声音的物理特性与数字音频表示
在进入 TinyML 音频数据采集的工程实践之前,必须先建立对音频信号本身的物理与数学直觉。麦克风布置、采样率选择、位深设定等看似工程决策的问题,本质上都源于声音的物理特性与数字化的量化约束。本章从声波的频率、振幅、相位三个核心维度出发,梳理人耳听觉范围对采样率设计的决定性影响,并深入解析 PCM 编码、位深与声道配置在嵌入式系统中的具体含义。理解这些基础,是后续设计麦克风阵列、规避混叠噪声、平衡存储与算力开销的前提。
2.1 声音的物理特性:频率、振幅与相位
声音本质上是介质(空气、水、固体)中传播的机械纵波。在 TinyML 音频采集中,我们通常将麦克风处的声波视为随时间变化的压力信号,并可用正弦波叠加模型近似描述。理解频率、振幅、相位这三个物理量,是后续所有信号处理与模型设计的基石。
2.1.1 频率:音高的物理基础
频率(Frequency)指单位时间内声波完成周期性振动的次数,单位是赫兹(Hz)。频率决定了人耳感知的“音高”:频率越高,音调越高。例如,钢琴中央 A 音为 440 Hz,而人耳能感知的上限约为 20 kHz。在 TinyML 场景中,频率直接决定了采样率的下限。根据奈奎斯特采样定理,为了无失真地还原最高频率为 fmax 的信号,采样率 fs 必须满足 fs ≥ 2×fmax。若采样率不足,高频成分会折叠到低频区域,产生混叠(Aliasing)现象,导致信号不可逆地失真。
实际工程中,麦克风频率响应范围、目标声音的频谱分布、以及抗混叠滤波器的过渡带宽度,都会影响最终采样率的选择。例如,语音识别任务通常关注 300 Hz – 3.4 kHz 的频带,而声学事件检测(如玻璃破碎声)可能需要覆盖到 10 kHz 以上。
2.1.2 振幅:响度与动态范围
振幅(Amplitude)表示声波压力的变化幅度,单位是帕斯卡(Pa),但在音频工程中更常用分贝(dB)表示相对响度。人耳对声音强度的感知范围极宽,从听阈(约 20 μPa)到痛阈(约 20 Pa),相差约 120 dB。振幅决定了信号的动态范围,即最大不失真信号与最小可分辨信号之比。在数字音频中,动态范围由位深决定:每增加 1 bit,动态范围约增加 6.02 dB。因此,16 bit 系统理论动态范围约为 96 dB,24 bit 系统约为 144 dB。
在 TinyML 设备中,振幅处理需要特别关注麦克风的灵敏度(通常以 dBV/Pa 表示)和前置放大器的增益设置。如果增益过高,信号会削波(Clipping),产生谐波失真;如果增益过低,则量化噪声相对增大,信噪比下降。
2.1.3 相位:时间差与空间信息
相位(Phase)描述的是声波在特定时刻的振动状态,单位是弧度(rad)或度(°)。对于单一频率的正弦波,相位是时间偏移的度量;对于复杂声音信号,相位关系决定了波形形状。在单麦克风采集中,相位信息通常不直接影响识别结果,但在多麦克风阵列中,相位差是声源定位(DoA)和波束成形的核心依据。例如,两个麦克风间距为 d,声源从侧面入射时,到达时间差 Δt = d·sinθ/c(c 为声速),对应的相位差 Δφ = 2πf·Δt。TinyML 设备若需实现语音增强或声源定位,必须保证多通道采样时钟同步,否则相位误差会直接破坏空间信息。
2.2 人耳听觉范围与采样率选择
人耳听觉范围通常定义为 20 Hz – 20 kHz,但这一范围随年龄和个体差异显著变化。对于 TinyML 应用,采样率的选择并非越高越好,而是要在信号保真度、存储开销、计算功耗之间取得平衡。
| 应用场景 | 目标频带 | 推荐采样率 | 依据 |
|---|---|---|---|
| 语音命令识别 | 300 Hz – 3.4 kHz | 8 – 16 kHz | 语音能量集中区,奈奎斯特余量充足 |
| 声学事件检测 | 100 Hz – 10 kHz | 20 – 24 kHz | 覆盖玻璃破碎、撞击等瞬态高频成分 |
| 音乐/环境声分析 | 20 Hz – 20 kHz | 44.1 – 48 kHz | 完整覆盖人耳听觉范围,CD 标准 |
| 工业异常声监测 | 50 Hz – 5 kHz | 12 – 16 kHz | 机械噪声集中在中低频,降低数据率 |
值得注意的是,TinyML 设备通常使用 MEMS 麦克风,其频率响应在 100 Hz – 10 kHz 范围内较为平坦,超过 10 kHz 后响应逐渐下降。因此,即使采样率设置为 48 kHz,麦克风本身的高频响应也可能成为瓶颈。设计时应同时查阅麦克风数据手册的频率响应曲线和信噪比(SNR)指标。
2.3 数字音频表示:PCM、位深与声道
模拟声波经麦克风转换为电信号后,需通过模数转换器(ADC)量化为数字信号。最基础的编码方式是脉冲编码调制(Pulse Code Modulation, PCM),它包含三个关键参数:采样率、位深、声道数。
2.3.1 PCM 编码原理
PCM 编码过程分为三步:采样(Sampling)、量化(Quantization)、编码(Encoding)。采样在时间轴上离散化信号,量化在幅度轴上离散化信号,编码则将量化后的数值转换为二进制码。例如,一个 16 bit、16 kHz 的单声道 PCM 流,每秒产生 16,000 × 2 字节 = 32,000 字节的数据。在 TinyML 设备中,PCM 数据通常以帧(Frame)为单位送入 DSP 或神经网络处理,每帧包含 10 – 30 ms 的音频数据。
// 示例:16 kHz、16 bit、单声道 PCM 数据率计算
采样率 fs = 16000 Hz
位深 bit_depth = 16 bit = 2 bytes
声道数 channels = 1
数据率 = fs × bit_depth × channels = 16000 × 2 × 1 = 32000 bytes/s ≈ 31.25 KB/s
2.3.2 位深:量化精度与噪声
位深决定了每个采样点的量化级数。16 bit 提供 65,536 个量化级,24 bit 提供 16,777,216 个量化级。量化误差(量化噪声)的功率与位深直接相关,每增加 1 bit,量化噪声降低约 6 dB。对于 TinyML 应用,16 bit 是主流选择,因为大多数 MCU 的硬件 I²S 接口和 DSP 指令集原生支持 16 bit 数据。24 bit 通常用于高端音频采集,但会显著增加存储和计算负担。
2.3.3 声道:单声道与多通道
声道数决定了空间信息的维度。单声道(Mono)数据量最小,适合语音命令、关键词检测等任务;双声道(Stereo)可用于简单的声源左右定位;多通道阵列(如 4 麦、6 麦)则支持波束成形和更精确的声源定位。在 TinyML 中,多通道数据必须考虑同步采集问题——如果各通道的采样时钟存在偏差,相位信息将失真。常见的解决方案是使用同一颗编解码器(Codec)的多通道 ADC,或使用 PDM 麦克风配合硬件抽取滤波器。
| 声道配置 | 数据率(16 kHz / 16 bit) | 典型应用 | 硬件要求 |
|---|---|---|---|
| 单声道 | 32 KB/s | 语音唤醒、关键词识别 | 单颗 MEMS 麦克风 + ADC |
| 双声道 | 64 KB/s | 声源左右定位、简单降噪 | 双麦克风 + 双通道 ADC |
| 4 麦阵列 | 128 KB/s | 波束成形、远场语音识别 | 4 颗 PDM 麦克风 + 硬件抽取 |
2.4 案例拆解:智能音箱唤醒词的采样参数设计
以一个典型的 TinyML 智能音箱唤醒词检测模块为例,设计目标是在 3 米距离内识别“小智小智”唤醒词,误唤醒率低于 1 次/24 小时,且整机音频采集功耗不超过 50 mW。
初始约束与目标:设备使用单颗 MEMS 麦克风(INMP441,I²S 接口,SNR 61 dB),主控为 ESP32-S3(内置 16 bit ADC,支持 I²S 外设)。唤醒词语音能量集中在 300 Hz – 2.5 kHz,但环境噪声(如空调、交通)可能包含 5 kHz 以上的高频成分。若采样率过低,高频噪声会混叠到语音频带,影响识别准确率。
分析判断过程:首先,根据语音频带上限 2.5 kHz,理论最低采样率为 5 kHz。但考虑到抗混叠滤波器并非理想低通,工程上通常留出 20% – 30% 的余量,因此选择 16 kHz 采样率。位深方面,16 bit 提供 96 dB 动态范围,足以覆盖从安静室内(约 40 dB SPL)到近距离说话(约 80 dB SPL)的场景。声道数选择单声道,因为唤醒词检测不依赖空间信息,且单声道数据率最低。
实际操作步骤:
- 配置 ESP32-S3 的 I²S 外设,主时钟 BCLK = 16 kHz × 32(I²S 标准帧宽)× 2(左右声道) = 1.024 MHz,实际仅使用左声道数据。
- 设置 DMA 缓冲区为 32 帧,每帧 512 个采样点(32 ms @ 16 kHz),双缓冲交替,避免数据丢失。
- 在 MCU 端实现 4 阶 IIR 高通滤波器(截止频率 100 Hz),去除次声波和直流偏置。
- 将 PCM 数据按 30 ms 窗口(480 采样点)送入神经网络进行唤醒词分类。
结果对比与风险:实测在 16 kHz / 16 bit / 单声道配置下,音频采集功耗为 18 mW(含麦克风偏置和 I²S 外设),数据率为 32 KB/s,满足设计约束。若将采样率提升至 48 kHz,功耗升至 52 mW,超出预算,且识别准确率仅提升 0.3%(因语音频带外信息对唤醒词无贡献)。主要风险在于:若环境存在 7 kHz 以上的强噪声源(如高频设备啸叫),16 kHz 采样率下该噪声会混叠至 1 kHz 附近,干扰唤醒词检测。缓解方案是在模拟前端增加 RC 低通滤波器(截止频率 7 kHz),或在 DSP 中实现数字抗混叠滤波。
2.5 总结复盘:从物理到数字的关键决策点
本章的核心逻辑可以归纳为一条决策链:声音物理特性 → 人耳/应用需求 → 采样率与位深 → 数据率与硬件选型。在实际项目中,建议按以下顺序进行参数设计:
- 第一步:明确目标声音的频带范围(通过查阅文献或实测频谱),确定 fmax。
- 第二步:根据奈奎斯特定理和滤波器非理想性,选择采样率 fs = (2.5 – 3) × fmax。
- 第三步:评估环境噪声和信号动态范围,选择位深(通常 16 bit 起步)。
- 第四步:根据是否需要空间信息,决定声道数。
- 第五步:计算数据率,验证 MCU 的存储带宽、DMA 吞吐量和功耗预算。
最后需要强调的是,PCM 只是音频数字化的起点。在 TinyML 实际部署中,往往还会使用 I²S 接口直接传输 PCM 数据,或使用 PDM 麦克风输出 1-bit 流再经硬件抽取滤波。无论采用何种接口,本章所述的频率、振幅、相位、采样率、位深、声道这六个参数,始终是音频采集系统设计的核心维度。掌握这些基础,才能在麦克风布置和场景覆盖中做出有理有据的工程决策。