视频封面

视频元信息

  • 课程:吴恩达深度学习专项课程 · 序列模型(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]

本节总结:语音识别模型主要有两种方案——

  1. 注意力模型(Attention Model)
  2. 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