声学信号基础:声音的物理特性与数字音频
做唤醒词模型,第一步就是跟声音打交道。你想想看,麦克风采集到的声音,到底是个什么东西?它怎么变成计算机能处理的数字信号?这里面门道不少。我刚开始接触语音识别时,觉得这些基础概念太枯燥,直接跳过去看算法了。结果调模型时发现,很多问题根源都在声学信号处理上。嗯,这一章我们就把地基打牢。
声音的物理三要素:频率、振幅、相位
声音本质上是机械波。物体振动挤压空气,形成疏密相间的纵波,传到我们耳朵里。描述这个波,有三个核心参数。
频率(Frequency)
频率决定音高。单位是赫兹(Hz),表示每秒振动次数。人耳能听到的范围大约是20Hz到20kHz。唤醒词模型主要关注的是语音频段,大概在300Hz到4kHz之间。
振幅(Amplitude)
振幅决定响度。波形图上,振幅就是波峰到波谷的高度。振幅越大,声音越响。但要注意,人耳对响度的感知是对数级的,所以我们常用分贝(dB)来表示。
相位(Phase)
相位描述波形在时间轴上的位置。单位是角度(°)或弧度(rad)。两个同频信号,相位不同,叠加后可能增强也可能抵消。这在麦克风阵列波束成形里特别重要。
从模拟到数字:采样与量化
麦克风输出的信号是连续的模拟电压。计算机只能处理离散的数字。这个转换过程叫模数转换(ADC),核心就两步:采样和量化。
采样(Sampling)
在时间轴上,每隔固定间隔取一个值。这个间隔的倒数就是采样率。比如16kHz采样率,意味着每秒取16000个点。
量化(Quantization)
把采样得到的连续电压值,映射到有限个离散等级上。常用位深是16bit,也就是把振幅范围分成65536个等级。
| 参数 | 典型值 | 对唤醒词的影响 |
|---|---|---|
| 采样率 | 16 kHz | 覆盖语音频段,计算量适中 |
| 位深 | 16 bit | 动态范围96dB,够用 |
| 声道数 | 单声道 | 唤醒词通常单声道即可 |
奈奎斯特定理:采样的黄金法则
这个定理说白了就一句话:采样率必须大于信号最高频率的两倍,才能无失真地重建原始信号。
公式很简单:f_s > 2 * f_max
如果违反这个定理,就会发生混叠(Aliasing)。高频信号会伪装成低频信号混进来,你根本分不清。
实际工程中,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 | 有损 | 产品演示、网络传输 |
本章知识体系
下面这张图,把声学信号基础的核心逻辑串起来了。从物理特性到数字表示,再到工程实践,每一步都环环相扣。
这张图把本章内容串起来了。从物理特性出发,经过采样量化,再到具体格式,最后落到唤醒词模型的工程实践。你想想看,每一步选择都会影响最终模型的效果。采样率设低了,高频信息丢失;位深不够,底噪太大;格式选错了,数据质量打折扣。
我个人觉得,声学信号基础这部分,理解概念不难,难的是在工程中做出正确取舍。比如采样率,理论上8kHz就够,我为什么用16kHz?因为要给后续的滤波、降噪留出处理余量。再比如量化位深,16bit是行业标准,但如果你做的是高动态范围的远场唤醒,24bit可能更合适。
嗯,这一章的内容就到这里。记住这些基础,后面讲特征提取、模型训练时,你会理解得更深。