深度学习 A to Z · 3-4

语音 — 空气的振动如何变成数字矩阵

声音是空气的振动。把这种振动按固定间隔测量(采样),按规定的格子记录下来(量化),切成短段(窗),分解出混有哪些高低的振动(傅里叶变换),再用像人耳一样把低音看得更细的刻度重新归并(梅尔),就得到了神经网络能读取的数字矩阵。所有声音都在本页直接合成。

1949整理出采样定理的 Shannon 论文 [R1]
8,000 → 1,9601 秒声音(8 kHz)的数字变成梅尔矩阵后
6.02 dB量化位数每增加 1 位,信噪比提高的量
25 ms · 10 ms本页的窗长与窗间隔
20 格梅尔滤波器数(本页)
2 段可在 Colab 中直接运行的代码
1振动

声音是空气的振动

扬声器的振膜前后振动时,空气会反复变密、变疏,并向外传播。每秒振动多少次决定音的高低(频率),振动幅度多大决定声音的大小(振幅)。

声音
大小
2采样

采样 — 每秒测量几次

测量次数 ≥ 2 × 最高频率Shannon, 1949

每秒测量次数

给初学者的解说

要正确记录振动,每振动一次至少要测量两次。每秒测量 fs 次,就只能记录到 fs/2 Hz(奈奎斯特极限),比这更快的振动会被错看成较慢的振动(混叠) [R1]。人耳大约能听到 2 万 Hz,所以音乐 CD 每秒测量 44,100 次。电话只需记录说话声,所以用 8,000 次。本页的梅尔频谱图也使用 8,000 次(8 kHz),因此无法记录高于 4,000 Hz 的声音。实际的录音设备会在采样前先滤掉高于极限的声音。

3量化

量化 — 把测得的值记在几格的尺子上

测得的值是小数点后无限延续的实数。要保存它,就必须四舍五入到规定格子中最近的一格。b 位就有 2b 个格。四舍五入产生的差就是量化噪声。

位数
4切分·窗

切分与窗 — 切成短段,让边缘变平滑

说话声每一刻都在变化。所以每次切出 25 ms 分别分析,并每次移动 10 ms 重复进行。把切出片段的两端平滑地压低的乘法就是“窗”。

窗的形状

为什么要压低两端

直接切的话,片段两端的值会突然断开。傅里叶变换在计算时假定该片段会无限重复。因此断开处的急剧变化会泄漏到原本不存在的频率上(泄漏)。Hann 窗乘以一条从 0 平滑升到 1 再降回来的曲线(0.5 − 0.5·cos),使两端变为 0。代价是峰会稍微变宽。25 ms·10 ms 是语音分析中常用的值,可根据任务调整。

5傅里叶变换

傅里叶变换 — 把混合的振动按高低分开

任何声音都可以表示为不同高低的正弦波之和。傅里叶变换接收波形,返回“几 Hz 的成分含有多少”。这和棱镜把白光分成彩虹很像。

声音
6梅尔频谱图

梅尔频谱图 — 按人耳刻度归并的数字矩阵

梅尔 = 2595 · log10(1 + Hz / 700)“Do Re Mi Fa” 1 秒 → 98 帧 × 20 格

查看的帧

给初学者的解说

人耳能很好地区分低音的小差别(100 Hz 和 200 Hz),却不太能区分高音的同样差别(3,000 Hz 和 3,100 Hz)。梅尔刻度把低频分得细、把高频分得粗。用这个刻度的 20 个三角形滤波器归并傅里叶变换结果(129 格),再取对数(分贝),就得到梅尔频谱图。上面的公式是广泛使用的一种定义。基于梅尔刻度的特征(MFCC)在语音识别中表现优于其他特征,长期被当作标准使用 [R2]。

7模型如何读取

模型的读取方式 — 像图片一样,或按顺序

梅尔频谱图是“频率 × 时间”的数字矩阵。神经网络用两种方式读取它。详细结构已在前面几篇中介绍。

读取方式

Colab 代码 — 亲手运行本页内容

两段代码都只使用 Colab 默认安装的库。点击“下载笔记本(.ipynb)”后,在 Colab 中通过文件 → 上传笔记本打开,或者复制后粘贴到新笔记本的单元格中。

代码 1 · 声音如何变成数字矩阵 — 用 numpy 一步一步来对应第 2~6 节 · numpy, matplotlib · CPU 1 秒

不用专门的库,计算采样·量化·窗·傅里叶变换·梅尔频谱图。页面上的数字(混叠 3 Hz、泄漏 7.95% → 0.05%、梅尔格的值)会原样出现。想换成自己的数据时,修改 SIGNAL 和 FS。

运行结果(2026-10-03 运行,numpy 2.4 · matplotlib 3.10 · CPU)。计算中没有随机数,无论何时运行结果都相同。
代码 2 · 用 librosa 生成同样的梅尔频谱图对应第 6 节 · numpy, librosa, matplotlib · CPU 数秒

用实际工作中常用的 librosa 把同一声音转换为梅尔频谱图,并与自己计算的结果比较。若要使用录音文件,请按照代码中的 [想换成自己的数据] 一行操作(文件请自行准备)。

运行结果(2026-10-03 运行,librosa 1.0 · numpy 2.4 · CPU)。librosa 以 FFT 长度(256)切分帧,因此少一帧(97 个)。其他数字几乎相同(相关系数 0.998)。

AI 应用提示词 — 以这段代码为起点

这是粘贴到 ChatGPT、Qwen、Claude 等 AI 助手中的提示词。点击“复制”时,所选代码会一并附在提示词后面。把〔 〕里的内容换成自己的情况即可。

一并附上的代码

AI 的回答只是起点。它提出的论文·数值·库函数务必对照原文和官方文档核实。如果在竞赛·论文中借助了 AI,请按照主办方和期刊的规定说明使用的事实和范围。

术语表

与正文中黄色虚线下划线相同的词典。整个系列使用统一的写法。点击章节名可跳到首次出现的位置。

类比合集 — 以及类比失灵之处

类比是理解的第一步,但也可能成为误解的种子。果蝇·大脑类比标注了强度。直接 有证据表明实际在做同样的事 · 部分 只有部分性质相似 · 无 尚未发现对应的东西

概念日常类比果蝇·大脑类比类比失灵之处
采样每隔 1 秒给奔跑的人拍一张照片部分 果蝇的复眼也只能以固定的速度追踪亮度变化照片拍下的是瞬间,而样本只是固定间隔上的值。比间隔更快的运动会被错看(混叠)
量化用 1 cm 刻度的尺子量身高无尺子的刻度是均匀的,而实际音频的刻度由位数决定
窗把照片边缘处理得模糊(暗角)无乘窗不是为了好看,而是为了减少切断的端点造成的虚假频率
傅里叶变换棱镜把光分成彩虹直接 人的耳蜗在不同位置对不同高低的声音作出反应,把声音按高低分开耳蜗随时间持续分解,并对强度变化作出非线性反应。傅里叶变换则一次性计算切出的一个片段
梅尔刻度钢琴键盘:音高每翻一倍,间隔相同部分 人感受到的音高间隔梅尔公式有好几种,每个人的听觉方式也不同。本页的公式只是广泛使用的一种
梅尔频谱图乐谱:时间(横)× 音高(纵)无乐谱记录的是一个个音符,而频谱图把包括泛音和噪声在内的全部能量逐格记录下来

作者简介与参考文献

E-1 作者简介 · E-2 学术参考文献 · E-3 图片参考资料

E-1 作者简介

Sangsun Ahn(M-Robo 公司代表)

曾任职于韩国电气安全公社、《每日经济新闻》,现创办每日经济外部风投企业 M-Robo 公司并担任代表。M-Robo 公司是由媒体内部创业起步的媒体风投企业,曾为《国民日报》提供机器人记者(StockBot)服务,并在韩国互联网振兴院、韩国言论振兴财团、韩国广播通信电波振兴院等机构开展了多个项目。此后运营自有的 AI 新闻报纸 Money-Robo。任代表期间获得亚洲开放数据黑客马拉松冠军,并因在数据创业领域的贡献两次获得行政安全部长官奖,是人工智能及区块链领域 5 项专利的发明人和注册人。著有《AI 犯罪与自我防御》,并为韩国技术教育大学在线终身教育院开发了金融科技、统计学、人工智能领域的在线学习内容。最高学位为经济学博士(东国大学,微观数理经济学)。目前在国民大学、湖西大学等多所大学讲授数据及人工智能相关课程。详细简历

课程

  • Sangsun Ahn (2025). 《面向商业的数据科学》讲义. 韩国开放网络大学 人工智能融合学科.
  • Sangsun Ahn (2025). [K-数字] 人工智能自然语言处理. STEP(智能职业培训平台), 韩国技术教育大学 在线终身教育院.
  • Sangsun Ahn (2024). [K-数字] 金融科技数据分析基础. STEP(智能职业培训平台), 韩国技术教育大学 在线终身教育院.

STEP 课程直达链接:link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
如因网站改版无法顺利访问,请访问 www.step.or.kr。

论文与报告

  • Sangsun Ahn (2025). 利用国民养老保障面板数据的家庭支出预测模型研究:基于人工智能模型的方法. 《未来社会》, 16(2). 原文
  • Sangsun Ahn (2025). 利用国民养老保障面板数据的家庭支出预测模型研究:人工智能方法. 国民养老保障面板学术会议报告资料(2025.05.13), 国民年金公团 国民年金研究院. 报告资料
  • Sangsun Ahn (2025). 基于 SNS 文本的可疑毒品交易检测算法研究:以模式与语境分析为中心. 《未来社会》, 16(1). 原文
  • Sangsun Ahn (2024). 面向金融领域异常检测模型安全的基于统计的对抗性数据应对方案:实证分析与模拟结果. 《未来社会》, 15(3). 原文
  • Sangsun Ahn (2024). 利用人工智能、基于虚拟角色特性的 SNS 帖子检测解决方案. 2024 Summer Newmedia Party 海报发表(2024.06.19), 首尔媒体研究生院大学.
  • Sangsun Ahn (2024). 利用工伤面板数据的机器学习模型. 第 10 届工伤保险面板学术会议海报发表(2024.05.17), 劳动福利公团 劳动福利研究院.
  • Sangsun Ahn (2024). 虚拟资产时间序列数据的分析与预测:时间序列模型与人工智能模型的比较及改进建议. 《未来社会》, 15(1). 原文

E-2 学术参考文献

  1. [R1] Shannon, C. E. (1949). Communication in the presence of noise. Proceedings of the IRE, 37(1), 10–21. doi:10.1109/JRPROC.1949.232969 — 页首、第 2 节(采样定理)
  2. [R2] Davis, S. B., & Mermelstein, P. (1980). Comparison of parametric representations for monosyllabic word recognition in continuously spoken sentences. IEEE Transactions on Acoustics, Speech, and Signal Processing, 28(4), 357–366. — 第 6 节(梅尔频率倒谱在所比较的特征中识别性能最好)

E-3 图片参考资料

所有声音均在页面上合成(未使用录音)。

  • 梅尔刻度公式 2595·log₁₀(1 + f/700) 和 25 ms·10 ms 的窗是语音处理中广泛使用的惯例值。也有库使用其他定义(如 Slaney 方式),因此代码 2 中统一为相同的定义

给教育者的提示

这是面向讲师、实务 OJT 负责人和辅导老师的教学指南。时间为预估值,请根据实际课堂调整。

对象想处理语音·声音数据(呼叫中心录音、设备噪声、语音指令)的大学生和从业者
先修知识正弦曲线和对数。了解 3-3 的“照片是数字网格”,第 6·7 节会更容易
学习目标① 能用数字说明采样·量化会丢失什么 ② 能按顺序说明声音经过窗·傅里叶变换·梅尔滤波器变成矩阵的过程 ③ 能区分 CNN 和序列模型读取梅尔矩阵的两种方式
预计时间阅读 35~45 分钟 · 动画·声音演示 20 分钟 · Colab 实践 25 分钟(代码 1 15 分钟,代码 2 10 分钟)

三种教学方案

讲授型 50 分钟

以概念为主

导入 5 分钟(第 1 节听声音)→ 第 2 节混叠 10 分钟 → 第 3 节按位数比较声音 10 分钟 → 第 4·5 节 15 分钟 → 第 6 节数字矩阵 5 分钟 → 检测题 5 分钟。

实务 OJT 90 分钟

以业务应用为主

将第 2·3 节与本单位设备的录音规格(采样频率·位数)对照 15 分钟 → 第 4~6 节 25 分钟 → 把自己的录音文件放入代码 2 30 分钟 → 讨论“我们的数据适合 CNN 型还是序列型” 20 分钟。

一对一辅导

按水平安排进度

入门者只学第 1·2·5·6 节。中级者让其手算代码 1 中 mel_filterbank 的一格,并与页面上的滤波器三角形图对照。

各节教学要点

章节停下来提问的问题操作提示
1 振动“440 Hz 比 220 Hz 振动快几倍?听起来会怎样?”依次播放两个音(没有声音时请检查设备音量)
2 采样“每秒测量 8 次,为什么看起来是 3 Hz?”按 50 → 12 → 8 次的顺序点击
3 量化“3 位的声音和 16 位的声音听起来有什么不同?”分别用 3 位和 16 位播放
4 切分·窗“直接切为什么会出现原本没有的频率?”交替点击矩形 ↔ Hann,观察下方图表的“裙摆”
5 傅里叶变换“同样是 ‘Do’,为什么钢琴和小提琴听起来不同?”按纯音 → 乐器音的顺序播放,比较峰的数量
6 梅尔频谱图“1 秒的声音变成了多少个数字?”点击 Do → Fa 的帧,观察最亮的格向上移动
7 模型如何读取“门铃声分类和语音转写分别适合哪种方式?”交替点击两种方式

常见误解 Top 5

误解正确解释要展示的场景
测得越多总是越好想记录的最高频率的 2 倍就足够了。超过的部分只会增加存储空间第 2 节的 12 次(5 Hz 能被记录)
位数少,声音就会变小变大的不是音量而是噪声。每增加 1 位约干净 6 dB第 3 节
傅里叶变换一次性分析整段声音是对每个短片段(帧)分别进行。因此能看到随时间的变化第 4·6 节
频谱图是图片,所以可以像照片一样处理横向(时间)和纵向(频率)的含义不同。纵向平移就会变成别的声音第 7 节
梅尔频谱图完整保留了声音它是舍弃相位和精细频率信息后缩减的摘要(8,000 → 1,960)第 6 节数字摘要

检测题(点击展开解析)

Q1. 采样频率为 8,000 Hz 时,能记录的最高频率是多少?

8,000 ÷ 2 = 4,000 Hz(奈奎斯特极限)。

Q2. 对 5 Hz 的振动每秒测量 8 次,看起来是几 Hz?

|5 − 8| = 3 Hz。超过极限(4 Hz),产生混叠。

Q3. 8 位与 16 位的理论 SNR 相差多少?

6.02 × (16 − 8) ≈ 48 dB。理论值分别为 49.92 dB 和 98.08 dB。

Q4. 把 1 秒的 8 kHz 声音按 25 ms 窗(200 个)、10 ms 间隔(80 个)切分,共有多少帧?

(8,000 − 200) ÷ 80 + 1 = 98 个(舍去小数后加 1)。

Q5. 98 帧 × 20 个梅尔格的矩阵有多少个数字?是原始声音数字的几分之一?

1,960 个。8,000 ÷ 1,960 ≈ 4.1,约为四分之一。

Colab 作业

基础

把代码 1 的 NMEL 从 20 改为 40,把 FRAME 从 200 改为 400。用三句话写出梅尔矩阵的大小和图像如何变化,并联系时间分辨率与频率分辨率之间的权衡。

挑战

用自己录制的声音或设备声音文件运行代码 2(文件请自行准备,注意个人信息)。把同一声音录两次,用相关系数比较两个梅尔矩阵有多相似,并写出造成差异的原因。

难度调整与延伸学习

入门者跳过第 3·4 节也不会打断整体思路。第 1·5 节的听声音环节一定要做
进阶让学生调查窗长·间隔·梅尔格数对识别性能的影响。调查到的论文要查阅原文确认
延伸学习Sangsun Ahn,《面向商业的数据科学》讲义(数据科学总览) · STEP [K-数字] 人工智能自然语言处理(与 3-5·3-8 相关) · STEP [K-数字] 金融科技数据分析基础(与 3-6 相关)
讲师用资料检测题的评分标准和作业参考答案见 教师用答案页面(3-4)

辛苦了!

你已读完「3-4 语音」篇。实验室成员们来各说一句做个总结。

博士
博士我们走完了空气的振动变成数字矩阵的全过程。
  • 只能记录每秒测量次数一半以内的声音
  • 用窗切分后做傅里叶变换,声音就按高低分开了
  • 1 秒声音的 8,000 个数字变成 1,960 个梅尔矩阵数字
助手
助手3 位的声音听得耳朵疼!
果蝇研究员
果蝇研究员我的振翅声也请做成梅尔矩阵吧。