
视频元信息
- 课程:吴恩达深度学习专项课程 · 序列模型(Sequence Models)· 第 3 周 3.9 节
- 主题:语音识别(Speech Recognition)
- 时长:约 8 分 50 秒
内容摘要(TL;DR)
本节讲解序列到序列模型在语音识别中的应用。核心内容包括:音频信号如何转化为频谱图作为输入特征;从传统音素建模到端到端深度学习的转变;大规模数据(1 万至 10 万小时)对性能的推动;以及两种主流方案——注意力模型与 CTC(Connectionist Temporal Classification)损失函数。重点解释 CTC 如何用空白符与重复字符折叠机制,解决输入时间步远多于输出字符数的对齐难题。
一、语音识别任务定义 [00:00]
序列到序列模型最令人兴奋的发展之一,就是高精度语音识别的崛起。本节作为课程收尾阶段的内容,展示序列模型如何应用于音频这类"通用数据"。
语音识别任务定义:给定一段音频片段(audio clip),系统需要输出对应的文本转录(transcript)。
- 音频本质上是麦克风测量的空气压力微小变化随时间的变化
- 人类听觉原理:耳朵检测空气压力的细微变化(由扬声器或耳机产生)
- 若音频内容为 "the quick brown fox",则语音识别算法应输入该音频并输出这段文字
理解:语音识别本质是一个"序列到序列"的映射问题——输入是随时间变化的连续信号序列,输出是离散的字符/词序列。
二、音频预处理:频谱图 [01:14]
原始音频波形不能直接送入学习算法,需要先做预处理。
关键预处理步骤:将原始音频片段转换为频谱图(spectrogram)。
- 横轴:时间
- 纵轴:频率
- 颜色强度:不同频率在不同时刻的能量大小(即声音有多响)
人耳并不会直接处理原始波形,而是通过物理结构测量不同频率的强度,这与频谱图的计算非常相似。
易错点: 频谱图(spectrogram)与滤波器组输出(filter bank outputs)常被混用,二者都是音频送入学习算法前的常见预处理形式。
拓展:频谱图通常由短时傅里叶变换(STFT)计算得到;滤波器组输出则是对频谱做梅尔刻度(Mel scale)滤波后的结果,更贴近人耳对频率的非线性感知,因此在实际语音系统中更常用(如 Mel-filterbank)。
三、从音素建模到端到端深度学习 [02:12]
传统方法:语音识别系统曾基于音素(phonemes)构建——这是人工设计的基本声音单元。
- 例如 "the quick brown fox" 会被拆解为一系列音素
- 音素用较复杂的符号系统标注
- 早期假设:把音频转写成基本声音单元是语音识别的最佳方式
范式转变:随着端到端深度学习的发展,音素表示不再必要。
- 系统可以直接输入音频片段,直接输出文本转录
- 不再依赖人工设计的中间表示
理解:这是深度学习"端到端"思想的典型体现——让模型自己学习从原始输入到最终输出的映射,减少人工特征工程的介入。
四、数据规模的关键作用 [03:27]
推动这一转变的重要因素是数据集规模的急剧扩大。
| 数据集类型 | 规模 |
|---|---|
| 早期学术数据集 | 约 300 小时 |
| 合理规模的学术数据集 | 约 3000 小时 |
| 大量研究论文所用数据 | 数千小时 |
| 最佳商业系统 | 超过 10000 小时,有时超过 100000 小时 |
考点: 大规模转录音频数据集 + 深度学习算法 = 语音识别进步的两大驱动力。
思考:数据规模从数百小时到十万小时的跨越,是端到端方法能取代音素方法的根本原因之一——小数据下人工先验(音素)有价值,大数据下模型可以自己学出更好的表示。
五、两种主流建模方案 [04:19]
构建语音识别系统有两种主要思路。
方案一:注意力模型(Attention Model)
- 横轴输入音频的不同时间帧
- 用注意力模型直接输出转录文本(如 "the quick brown fox")
方案二:CTC 损失函数
CTC = Connectionist Temporal Classification(连接时序分类)
- 提出者:Alex Graves、Santiago Fernández、Faustino Gomez、Jürgen Schmidhuber
- 是语音识别中效果良好的方法
理解:注意力模型适合输入输出长度差异较大的场景,而 CTC 则专门解决"输入时间步远多于输出标签数"的对齐问题,两者各有适用场景。
六、CTC 原理详解 [04:58]
6.1 网络结构
- 输入与输出线数量相等(等长的输入输出时间步)
- 视频中为简化画成单向 RNN,但实际中通常使用双向 LSTM 或双向 GRU,且往往是更深的模型
6.2 核心矛盾:输入步数远多于输出步数
考点: 语音识别中输入时间步通常远大于输出时间步。
举例说明:
- 10 秒音频,特征频率为 100 Hz
- 输入时间步 = 100 Hz × 10 秒 = 1000 个输入
- 但输出文本不可能有 1000 个字符
6.3 CTC 的解决方案
CTC 允许 RNN 输出包含空白符(blank character)和重复字符的长序列。
以 "the quick brown fox" 为例,网络可输出类似:
T T T _ H _ E E _ _ _ _ _ _(_表示空白符)→ 折叠为T H E- 空格 → 输出空格字符
_ _ _ Q Q Q _ _→ 折叠为Q
CTC 基本规则: 折叠未被空白符分隔的重复字符。
易错点: 空白符(blank,用
_表示)与空格符(space)是两个完全不同的字符。空白符用于分隔重复字符,空格符是真实文本的一部分(如 "the" 与 "quick" 之间的间隔)。
6.4 折叠过程演示
序列 T T T _ H _ E E _ _ _ _ _ _ [空格] _ _ _ Q Q Q _ _ 折叠后得到:
T、H、E→ "the"- 空格
Q→ "q"
关键结论:即使网络被迫输出 1000 个字符,通过插入空白符和重复字符,仍能表示仅 19 个字符的输出("the quick brown fox" 含空格共 19 个字符)。
推导:CTC 的本质是引入一个"多对一"的映射——多条输出路径(含空白与重复)都可以折叠到同一个目标标签序列,从而无需预先知道输入与输出的精确对齐关系。
七、CTC 的实际应用与背景 [08:00]
拓展: 视频提到该思路被用于两篇重要工作:
- 一篇关于添加空格(space)的论文
- Deep Speech 语音识别系统(吴恩达本人参与)
这些系统都使用 CTC 思想构建了有效的语音识别系统。
八、总结与下节预告 [08:13]
本节总结:语音识别模型主要有两种方案——
- 注意力模型(Attention Model)
- CTC 模型
重要提醒: 构建有效的、可用于生产的语音识别系统是一项相当大的工程,需要非常庞大的数据集。
下节预告:将介绍触发词检测(trigger word detection)或关键词检测(keyword detection)系统——这类系统更容易实现,即使数据量较小或较合理也能工作。
关键标签 / 关键词
语音识别 #SpeechRecognition #CTC #ConnectionistTemporalClassification #序列到序列 #Seq2Seq #注意力模型 #AttentionModel #频谱图 #Spectrogram #音素 #Phoneme #端到端学习 #EndToEndLearning #双向LSTM #双向GRU #空白符 #BlankCharacter #DeepSpeech #吴恩达深度学习 #序列模型 #触发词检测
生成时间:2026-10-11 00:16:59 生成平台:VideoNote www.xygy.top