声学信号基础:声音的物理特性与数字音频

做唤醒词模型,第一步就是跟声音打交道。你想想看,麦克风采集到的声音,到底是个什么东西?它怎么变成计算机能处理的数字信号?这里面门道不少。我刚开始接触语音识别时,觉得这些基础概念太枯燥,直接跳过去看算法了。结果调模型时发现,很多问题根源都在声学信号处理上。嗯,这一章我们就把地基打牢。

声音的物理三要素:频率、振幅、相位

声音本质上是机械波。物体振动挤压空气,形成疏密相间的纵波,传到我们耳朵里。描述这个波,有三个核心参数。

频率(Frequency)

频率决定音高。单位是赫兹(Hz),表示每秒振动次数。人耳能听到的范围大约是20Hz到20kHz。唤醒词模型主要关注的是语音频段,大概在300Hz到4kHz之间。

我的经验: 做唤醒词时,我习惯把采样率设为16kHz。为什么?因为语音的有效信息基本都在8kHz以下,16kHz采样刚好覆盖,又不浪费计算资源。你设成44.1kHz,模型参数多了,效果提升却微乎其微。

振幅(Amplitude)

振幅决定响度。波形图上,振幅就是波峰到波谷的高度。振幅越大,声音越响。但要注意,人耳对响度的感知是对数级的,所以我们常用分贝(dB)来表示。

相位(Phase)

相位描述波形在时间轴上的位置。单位是角度(°)或弧度(rad)。两个同频信号,相位不同,叠加后可能增强也可能抵消。这在麦克风阵列波束成形里特别重要。

避坑指南: 我曾经在调试双麦克风降噪时,忽略了相位对齐。结果两个通道的信号直接相减,反而把目标语音消掉了。折腾了两天才发现是相位差没补偿。所以,相位这东西,看着不起眼,关键时刻能坑死人。

从模拟到数字:采样与量化

麦克风输出的信号是连续的模拟电压。计算机只能处理离散的数字。这个转换过程叫模数转换(ADC),核心就两步:采样和量化。

采样(Sampling)

在时间轴上,每隔固定间隔取一个值。这个间隔的倒数就是采样率。比如16kHz采样率,意味着每秒取16000个点。

量化(Quantization)

把采样得到的连续电压值,映射到有限个离散等级上。常用位深是16bit,也就是把振幅范围分成65536个等级。

参数 典型值 对唤醒词的影响
采样率 16 kHz 覆盖语音频段,计算量适中
位深 16 bit 动态范围96dB,够用
声道数 单声道 唤醒词通常单声道即可
注意: 量化位深不够,会导致量化噪声。我见过有人为了省存储,把16bit音频转成8bit,结果唤醒率直接掉了5个点。底噪太大了,模型根本分不清语音和噪声。

奈奎斯特定理:采样的黄金法则

这个定理说白了就一句话:采样率必须大于信号最高频率的两倍,才能无失真地重建原始信号。

公式很简单:f_s > 2 * f_max

如果违反这个定理,就会发生混叠(Aliasing)。高频信号会伪装成低频信号混进来,你根本分不清。

举个例子: 语音信号最高频率4kHz,采样率设8kHz以上就行。我习惯用16kHz,留出余量。如果采样率设6kHz,那4kHz的信号会被混叠成2kHz,听起来声音都变了。模型在这种数据上训练,效果可想而知。

实际工程中,ADC前面都会加一个抗混叠滤波器,把高于f_s/2的频率滤掉。嗯,这个滤波器设计不好,也会引入相位失真。我在做低功耗唤醒芯片时,就遇到过滤波器阶数选低了,阻带衰减不够,还是有少量高频漏进来。后来换了个高阶滤波器才解决。

常见音频格式:WAV、PCM、MP3

做唤醒词模型,天天跟音频文件打交道。这三种格式你必须搞清楚。

PCM(Pulse Code Modulation)

最原始的数字化音频格式。就是采样量化后的裸数据,没有压缩。文件头里记录采样率、位深、声道数等信息。唤醒词模型训练,我强烈建议用PCM格式。

WAV(Waveform Audio File Format)

WAV是微软和IBM开发的容器格式。它里面装的数据,绝大多数就是PCM。所以WAV和PCM经常混着说。WAV文件有个44字节的文件头,后面跟着音频数据。

MP3(MPEG Audio Layer III)

有损压缩格式。它利用人耳的听觉掩蔽效应,去掉人耳不敏感的频率成分。压缩比高,但会丢失信息。唤醒词模型训练,千万别用MP3。压缩带来的失真,会让模型学到奇怪的特征。

格式 压缩方式 推荐用途
PCM 无损 模型训练、声学分析
WAV 通常无损 数据存储、标注
MP3 有损 产品演示、网络传输
我的习惯: 数据采集阶段,一律存成16kHz、16bit、单声道WAV。后期做数据增强时,再根据需要转格式。这样能保证原始数据质量,不会因为压缩引入不可逆的损失。

本章知识体系

下面这张图,把声学信号基础的核心逻辑串起来了。从物理特性到数字表示,再到工程实践,每一步都环环相扣。

声学信号基础 · 知识体系 声音物理特性 数字音频转换 音频文件格式 频率 (Hz) 振幅 (dB) 相位 (°) 采样 量化 奈奎斯特定理 PCM WAV MP3 唤醒词模型工程实践 16kHz采样率选择 抗混叠滤波器 数据存储格式 量化噪声控制 核心原则:采样率 > 2 × 最高频率,位深决定动态范围

这张图把本章内容串起来了。从物理特性出发,经过采样量化,再到具体格式,最后落到唤醒词模型的工程实践。你想想看,每一步选择都会影响最终模型的效果。采样率设低了,高频信息丢失;位深不够,底噪太大;格式选错了,数据质量打折扣。

我个人觉得,声学信号基础这部分,理解概念不难,难的是在工程中做出正确取舍。比如采样率,理论上8kHz就够,我为什么用16kHz?因为要给后续的滤波、降噪留出处理余量。再比如量化位深,16bit是行业标准,但如果你做的是高动态范围的远场唤醒,24bit可能更合适。

嗯,这一章的内容就到这里。记住这些基础,后面讲特征提取、模型训练时,你会理解得更深。