第一章 语音信号基础:声音的物理特性与数字化
各位同学好,我是这门课的主讲。做语音算法这些年,我最大的感受是——很多人一上来就扎进深度学习,结果连最基本的采样定理都没搞明白。说实话,这就像盖楼不打地基,迟早要出问题。
这一章,咱们先把声音的物理本质和数字化过程理清楚。你想想看,麦克风采集到的声音,到底是怎么变成计算机能处理的数字信号的?这里面藏着不少坑,我当年刚入行时就踩过。
1.1 声音的物理三要素:频率、振幅、相位
声音的本质是机械振动在介质中的传播。说白了,就是空气分子被推来推去,形成疏密波。描述这个波,只需要三个参数。
| 参数 | 物理含义 | 听觉对应 | 单位 |
|---|---|---|---|
| 频率 | 每秒振动的次数 | 音调(高/低) | Hz(赫兹) |
| 振幅 | 振动的最大偏移量 | 响度(大/小) | dB(分贝) |
| 相位 | 振动起始点的位置 | 声源定位(左右耳差) | rad(弧度)或 ° |
频率决定了声音是尖锐还是低沉。人耳能听到的范围大约是 20 Hz ~ 20 kHz。低于 20 Hz 叫次声波,高于 20 kHz 叫超声波。我在做语音增强项目时,经常需要滤掉 50 Hz 的工频干扰——那是电网的噪声,你听不见,但算法能检测到。
振幅决定了声音有多大。这里有个容易混淆的点:振幅是线性值,但我们通常用分贝(dB)来表示。公式很简单:dB = 20 * log10(振幅比)。为什么用对数?因为人耳对响度的感知本身就是对数级的。你从 1 倍音量调到 2 倍,感觉变化很大;但从 100 倍调到 101 倍,几乎没感觉。
相位是个容易被忽略的参数。单声道录音里,相位似乎不重要——反正人耳对纯音的相位不敏感。但一旦涉及多通道(比如双耳录音、波束成形),相位就至关重要了。我曾经调试一个麦克风阵列算法,死活定位不准,最后发现是左右声道相位标反了……嗯,这种低级错误,犯过一次就记住了。
核心理解:频率、振幅、相位三者共同决定了一个正弦波。任何复杂的语音信号,都可以看作无数个不同频率、振幅、相位的正弦波的叠加。这就是后面要讲的傅里叶变换的物理基础。
1.2 从模拟到数字:采样与量化
麦克风输出的信号是连续的模拟电压。计算机只能处理离散的数字。这个转换过程叫 ADC(模数转换),包含两步:采样和量化。
1.2.1 采样:在时间轴上打点
采样就是每隔固定时间 Ts 取一个瞬间的电压值。这个时间间隔的倒数就是采样率 Fs = 1/Ts,单位是 Hz。
举个例子:CD 音质的采样率是 44100 Hz,也就是每秒采集 44100 个点。为什么是 44100?后面讲奈奎斯特定理时会解释。
我的习惯:做语音识别时,常用 16 kHz 采样率。因为语音的主要能量集中在 4 kHz 以下,16 kHz 足够覆盖。但做音乐或高保真录音,至少要用 44.1 kHz。选采样率不是越高越好——越高数据量越大,处理也越慢。
1.2.2 量化:在幅度轴上打格
采样得到的是连续电压值,但计算机只能用有限个数字表示。量化就是把连续的幅度值映射到离散的等级上。
量化精度用位深(bit depth)表示。16 bit 意味着有 2^16 = 65536 个等级。8 bit 只有 256 个等级。
量化会产生误差,叫量化噪声。位深每增加 1 bit,信噪比提升约 6 dB。16 bit 的理论信噪比是 96 dB,足够覆盖人耳的动态范围。
避坑指南:我曾经为了省存储空间,把 16 bit 的语音数据强行截成 8 bit。结果背景噪声变得很明显,像加了沙沙声。后来才知道,量化噪声在低能量段尤其明显——语音的静音段本来信号弱,量化误差一掺进来,信噪比直接崩了。
1.3 奈奎斯特定理:采样率的底线
这个定理是数字信号处理的基石。它说得很清楚:
要无失真地重建一个模拟信号,采样率必须至少是信号最高频率的两倍。
用公式表达:Fs ≥ 2 * Fmax
这个 Fs/2 叫奈奎斯特频率。高于这个频率的成分,采样后会发生混叠(aliasing),变成低频的假信号。
举个例子:假设信号里有 7 kHz 的成分,你用 10 kHz 采样。7 kHz 超过了奈奎斯特频率 5 kHz,采样后它会伪装成 3 kHz 的信号混进来。你明明没录 3 kHz 的声音,但回放时听到了——这就是混叠。
实际工程做法:采样前必须加抗混叠滤波器(低通滤波器),把高于 Fs/2 的频率成分滤掉。我见过有人偷懒不装这个滤波器,结果高频噪声全部折叠到低频段,语音质量一塌糊涂。记住:奈奎斯特定理是必要条件,不是充分条件——你还需要硬件配合。
回到刚才的问题:为什么 CD 用 44100 Hz?因为人耳上限是 20 kHz,留一点余量,取 22050 Hz 的两倍就是 44100 Hz。语音识别用 16 kHz,因为语音的有效频率上限约 8 kHz,两倍就是 16 kHz。
1.4 时域与频域:看声音的两个视角
同一个声音信号,可以从两个完全不同的角度观察。
- 时域:横轴是时间,纵轴是幅度。你看到的是波形——声音随时间如何变化。
- 频域:横轴是频率,纵轴是幅度(或能量)。你看到的是频谱——声音里包含哪些频率成分,各有多强。
时域直观,但信息密度低。比如一段语音,时域波形看起来乱糟糟的,很难直接看出内容。频域则能清晰展示声音的“成分”——元音有明确的共振峰结构,辅音则呈现宽频噪声特征。
时域和频域通过傅里叶变换相互转换。这个变换是语音算法的核心工具,后面几章会反复用到。
我的经验:调试语音算法时,我习惯同时看时域波形和频谱图。时域能快速发现削波、静音、爆音等问题;频域则能看出噪声分布、共振峰偏移等细节。两个视角互补,缺一不可。
知识体系总览
下面这张图把本章的核心概念串起来了。你可以把它当作一张地图,后续章节都会围绕这些基础展开。
本章小结
这一章我们覆盖了四个核心知识点:
- 声音的物理特性——频率、振幅、相位,是描述一切声音的基本参数。
- 采样与量化——把连续信号变成离散数字的两个步骤,决定了数字音频的质量。
- 奈奎斯特定理——采样率的理论下限,违反它就会产生混叠失真。
- 时域与频域——观察声音的两个互补视角,通过傅里叶变换相互联系。
这些概念看似基础,但我在实际项目中见过太多因为基础不牢而翻车的案例。比如采样率选低了导致高频信息丢失,量化精度不够导致底噪过大,或者忘记加抗混叠滤波器导致频谱污染。你把这些基础打扎实了,后面学各种算法才会事半功倍。