跳转至

语音识别

引言

近年来,深度学习(DL)的发展给自动语音识别(ASR)带来了重大挑战.ASR依赖于大量训练数据,其中包括一些机密数据,同时还需要大量的计算和存储资源.为了提升ASR在动态环境中的性能,引入自适应系统是必要的.传统深度学习技术通常假设训练数据和测试数据来自同一领域,但这一假设在实际中并不总是成立.

为了解决这些问题,出现了一些先进的深度学习技术,如深度迁移学习(DTL),联邦学习(FL)和深度强化学习(DRL).DTL可以利用少量但相关的数据构建高性能模型;FL可以在不直接获取数据的情况下对包含机密信息的数据进行训练;DRL则通过优化动态环境中的决策过程来降低计算成本.

本文综述了基于DTL,FL和DRL的ASR框架,旨在为研究人员和从业者提供最新发展的见解,并帮助理解当前面临的挑战.此外,Transformer作为一种在所提出的ASR框架中被广泛使用的先进深度学习技术,也被纳入本综述,其优势在于能够捕捉ASR输入序列中的长距离依赖关系.

本文首先介绍了DTL,FL,DRL以及Transformer的背景知识,然后通过一个精心设计的分类体系(taxonomy)对当前最先进(SOTA)方法进行梳理.随后,对各类框架的优点和缺点进行了批判性分析.此外,还进行了对比研究,以突出当前存在的挑战,并为未来的研究方向提供参考.

背景

声学模型和语言模型

声学模型(AM)用于对语音信号中的语音单元进行建模: 首先从原始音频波形中提取特征向量序列(如 MFCC, 滤波器组特征等), 这些特征通过线性预测编码, 倒谱分析, 小波分析等方法获得, 用于刻画语音的声学属性; 随后, 声学模型根据这些特征输出各语音单元(如音素)的概率分布. 在解码阶段, 解码器结合声学模型的输出, 发音词典以及语言模型, 通过搜索最优路径生成最终结果, 该结果可以是音素序列, 也可以直接是词序列.

语言模型(LM)为词序列提供概率, 这对于自动语音识别(ASR)系统预测句子中后续词出现的可能性至关重要. 领域特定的语言模型是在目标领域的文本数据上训练的, 用于捕捉该领域特有的词汇和语法结构. 对于 n-gram 模型, 这涉及计算在给定前面 ( n-1 ) 个词的条件下某个词出现的条件概率:

\[ P(w_n \mid w_{n-1}, w_{n-2}, \dots, w_{n-(n-1)}) = \frac{C(w_{n-(n-1)}, \dots, w_n)}{C(w_{n-(n-1)}, \dots, w_{n-1})} \]

在 ASR 的背景下, 语言模型通过提供语言上下文来补充声学模型(AM). 声学模型与语言模型的联合概率有助于在解码过程中, 为给定的音频输入确定最可能的转写结果. 在 ASR 系统中, 常用的语言模型是回退(backoff)n-gram 模型.

图: 该图描述了传统语音识别系统的整体流程: 首先, 输入的语音信号(speech utterance)经过声学前端处理(acoustic front-end)提取特征(如 MFCC), 形成特征向量序列; 随后, 声学模型(acoustic model)根据这些特征输出各时间帧对应语音单元(如音素)的概率分布; 在此基础上, 解码器(decoder)作为核心模块, 综合利用声学模型的输出, 发音词典(lexicon)以及语言模型(language model)提供的语言约束, 通过搜索算法寻找最优路径, 最终生成最可能的音素序列或词序列作为识别结果.

衡量标准

为了评估ASR技术的有效性和适用性, 研究人员采用了多种方法. 其中一些方法包括广泛认可的DL指标, 如准确率, F1分数, 召回率(敏感性或真正率(TPR)), 精确率(也称为阳性预测值), 以及特异性(通常称为真负率(TNR)). 这些指标作为实验结果的重要评估标准, 已在多项研究中得到体现. 此外, 还有ASR特有的指标, 详见表2.

  • WER: 词错误率. 是ASR中最经典的指标. 用来比较识别结果和标准答案之间到底差了多少. 它把错误分为三类. S, Substitution, 替换错误; D, Deletion, 删除错误; I, Insertion, 插入错误; H, 命中数, 识别争取的次数; N, 总词数. 使用公式可以表示为\(\frac{S+D+I}{N}=\frac{S+D+I}{H+S+D}\). 例如, 参考文本是"I like music", 识别结果是"I like the music", 这就是插入错误; 如果参考文本是"I like music", 结果识别成"I love music", 那么这就是替换错误. WER的结果非常直观, 它直接回答了一个问题, 识别结果中有多少的比例是错误的. 因此, 在论文和系统评测中几乎都会用到它. 但是, 它存缺陷: 第一, 它默认所有的错误代价都是一样的, 可实际上有些词错了的影响很小, 有些词错了会严重改变意思; 第二, 它更加适合按照单词切分的语言, 对于中文, 通常还会配合CER, 即字符错误率一起使用, 因为中文天然更加适合按照字统计; 第三, WER只看字面一致性, 不看语义上是否相近.
  • RTF: RTF衡量的是速度成本, 不是准确率. 它表示系统处理语音所需的时间和语音本身的时长之间的比值. 例如, 一段10s的音频, 系统用了5s处理完成, 那么RTF=5/10=0.5. 这意味着系统处理速度快于实时, 可以用于实时应用. 如果一段10s的音频需要20s才处理完成, 那么RTF=2.0, 表示系统比实时慢一倍, 不适合实时场景. RTF是部署中非常关键的指标. 实验室里面的高精度模型不一定能够上线, 因为它可能太慢, 尤其是在手机, 车载, 会议转写, 在线客服等场景, 除了准能率, 速度同样重要. 一般来说, RTF<1, 通常可以实时运行; RTF=1, 大致实时; RTF>1, 通常不能严格实时. RTF的优点是简单直接, 局限是他只能反应计算效率, 不能反应识别质量. 因此实际评估的时候往往要把WER和RTF放在一起看, 才能判断系统是否真正可用.
  • PESQ: 感知语音质量评估. PESQ不是衡量听起来对不对, 而是衡量语音听起来好不好, 他常用3A任务中. 其核心思想是把原始干净的语音和处理后的语音进行比较, 根据感知模型输出一个质量评分. 这个分数反应的是人耳可能感受到的语音质量差异, 比如是否清晰, 是否失真, 是否有杂音. 在ASR系统里面, PESQ通常出现在前端语音增强模块的评估中. 比如一个系统先做降噪, 再做识别. 那么研究者可能同时关心两件事情: 一是降噪之后声音质量是否变好, 二是识别结果是否准确, 前者可以看PESQ, 后者可以看WER. PESQ的优点是和主观听感比较接近, 比单纯的看信噪比更加有意义. 缺点是它不直接等于识别性能变好. 有时候声音听起来更加自然, 但是模型未必更加容易识别.
  • MOS-LQO: MOS原本是主观评价中的平均意见分, 也就是让人来打分, 比如从1到5分评估语音质量. MOS-LQO则是一个客观预测的分数, 试图用算法去估计人会给出怎样的听感评分. 他依然属于音质评价, 而不是识别精度评价. 一个系统的MOS-LQO很高, 只能说明语音听感可能比较好, 不能证明ASR结果一定很好.
  • RER: 相对错误率. RER常用于展示一个新方法相比于基线到底提升了多少. 它不是一个原始误差指标, 而是一个"改进幅度"指标. 假设基线模型的错误率是20%, 新模型的错误率是15%, 那么RER=((20-15)/20) * 100%=25%. 这表示新模型相对于基线, 错误率下降了25%. 这个指标在论文中比较常见, 因为能快速体现改进价值. 尤其是当作者想说明"提出的方法比已有方法更有效"的时候, RER很有说服力.
  • D: 这个指标比较特别, 他不是面向最终用户最常见的指标, 而是更加偏向模型内部行为分析. 他主要出现于基于注意力机制的模型中, 用来衡量注意力矩阵是不是沿着主对角线分布. 为什么主对角线重要, 因为在很多语音识别任务中, 输入语音帧和输出文字序列在大体上是时间顺序对齐的. 如果模型学到了比较合理的对应关系, 那么注意力通常会集中在对角线附近, 表示当前输出主要关注当前对应的输入片段.

数据集

文献中已针对各种自动语音识别任务采用了多种数据集. 下表展示了用于基于深度迁移学习的自动语音识别应用的一部分数据集, 以及它们各自的特征. 需要注意的是, 该表主要包含公开可访问的资源库. 此外, 还值得一提的是, 某些数据集随着时间推移经历了多次更新和改进, 从而得到了进一步发展.

  • LibriSpeech: 这是语音识别领域最经典的英文ASR基准之一. 来自LibriVox的有声书录音, 所以主要是"朗诵体英文", 而不是自然对话. 采样率通常是16kHz, 总量大概是1000小时, 因此非常适合训练和评估大词表连续语音识别模型. 它的特点是标注质量高, 训练集大, 社区使用极广, 很多端到端ASR, CTC, Transducer, Attention, Whisper类论文都会报告在LibriSpeech上的结果. 里面的clean表示相对干净, 容易识别, other更难. 优点是标准化程度高, 方便和别人比较; 缺点是朗读语音, 说话清晰, 发音相对规范, 噪音少, 不太代表真实通话, 会议, 口语交互场景. 所以一个模型在LibriSpeech上表现好, 不太代表真实通话, 会议, 口语交互场景.
  • AISHELL: 这是中文普通话ASR里面非常常见的公开数据集, 尤其是AISHELL-1, 它是中国语音识别研究中最常用的公开基准之一, 录音条件相对标准, 内容是普通话朗读或者较规范的口语风格. AISHELL-1大约是178小时量级, 发音人较多, 适合训练中文基础ASR. 后续还有AISHELl-2, AISHELL-3等扩展版本, 分别在规模, 任务类型或者语音合成方面有所不同. 优点是开源可得, 中文社区使用广, 适合做基线. 局限是它对真实互联网语音, 强噪声环境, 方言混合, 多说话人对话的覆盖有限. 一个系统在AISHELL上表现好, 说明普通话基础能力不错, 但不代表对粤语口音, 四川口音一定强.
  • HKUST: HKUST是一个非常经典的中文电话会话语音数据集. 通常用于普通话会话识别研究. 它的重要性有点类似于英文里面的Switchboard, 只不过对应中文电话场景. 它的语音是比较自然的电话对话, 而不是朗读, 因此会有口语特征, 停顿, 重复, 省略等问题. 它比AISHELL更能体现"真实中文口语识别"的难度, 尤其适合研究会话ASR, 口语建模, 电话信道鲁棒性. 优点是对中文会话识别研究很有价值, 局限是电话带宽限制明显, 而且数据规模不能和现在几千小时的大语聊相比. 对于中文真实场景研究, 它依然具有参考意义.
  • WenetSpeech: 是一个大规模中文语音识别数据集, 由WeNet Community发布, 主要用于训练高性能ASR模型. 它的数据来源是YouTube, Podcast, 长视频音频, 真实世界的语音, 数据比较野生.
  • Fleurs: Few-shot Learning Evaluation of Universal Representations of Speech是由Google发布的一个多语言语音识别评测数据集, 主要用于衡量模型在低资源语言+少样本场景下的泛化能力. Fluers主要用于评估多语言ASR模型, 语音表征是否具有跨语言泛化能力, 以及few-shot/zero-shot场景表现. 它的覆盖语言非常多, 102种, 包含大量低资源语言; 所有的语言都来自同一套文本, wikipedia Foundation的百科内容. 每种语言约10小时的语音数据, 由人工朗读, 多说话人.
  • CommonVoice: Common Voice是由Mozilla Foundation发起的一个开源语音数据集项目, 目标是构建一个公开, 免费, 多语言的大规模语音语料库, 用于训练和评估语音识别ASR模型. 其核心特点包括: 众包采集, 任何人都可以通过官网录音或者验证他人语音, 形成数据, 这种方式带来多样的口音, 年龄, 性别, 更加接近真实世界的分布; 多语言覆盖, 支持100+语言, 包含低资源语言, 非英语数据占比逐渐提升; 完全开源, 使用CC0协议, 可用于商业用途, 无需授权.

Transformer模型

声学领域

Transformer在声学领域的应用并不只局限于"把RNN换成自注意力". 更准确地说, 它已经渗透到声学建模, 特征融合, 语音增强, 语音分离, 流式识别以及多任务建模等多个方向. 其共同优势在于: 能够更好地建模长距离时序依赖, 在时频两个维度上建立全局关联, 并且便于和不同的前端特征提取模块组合. 但与此同时, 论文也指出, Transformer在声学侧并不是没有代价, 它对稀疏输入, 长音频序列以及计算资源都更加敏感.

  • 鲁棒声学模型: 论文首先提到, 与CNN相比, Transformer对输入稀疏性更敏感. 这在语音任务中很重要, 因为静音段, 稀疏激活, 缺失信息都可能让注意力分布变得不稳定. 为了解决这一问题, 有研究直接对注意力权重进行正则化, 利用强制对齐(forced alignment)得到的静音标签约束注意力输出. 这种做法的优点是直接作用于模型内部最关键的注意力分布, 不需要额外训练新的辅助模块, 因而能以相对较小的额外成本提升Transformer声学模型的鲁棒性.
  • 多流和多层声学特征融合: 传统端到端ASR往往把一条特征流直接送入编码器, 但论文指出, 不同层级的声学特征具有互补性. 因此, 有工作引入多层次声学特征提取框架, 同时保留浅层的判别性特征和更深层, 更偏说话人无关的特征, 再通过特征相关性融合(feature correlation-based fusion, FCF)在频域和时域上进行联合建模. 这一类方法说明, Transformer在声学领域不仅是"后端建模器", 也可以作为多源声学信息融合的核心枢纽.
  • 谱图上的自监督预训练: 论文重点提到了MAE-AST(masked autoencoding audio spectrogram Transformer). 这类方法把语音或音频谱图看作类似图像patch的序列, 通过遮蔽部分token, 让模型仅根据未遮蔽区域恢复表示. 它的价值在于, Transformer不再完全依赖人工标注的转写文本, 而是先在大规模未标注音频上学习通用声学表征, 再迁移到下游ASR或分类任务. 论文指出, 这种设计不仅在下游任务上持续优于早期的SSAST方案, 还带来了更快的训练速度和更低的显存占用. 这说明Transformer在声学侧的一个重要趋势, 就是从"监督式识别器"转向"通用音频表征编码器".
  • 环境声音与复杂声学场景建模: 3.1.1节没有把声学领域狭义地限定为语音转写, 而是把环境声音识别(acoustic scene classification, sound tagging, anomalous sound detection)也纳入讨论. 例如SE-Trans利用Transformer编码器学习声学特征中的通道关系和时间依赖, 并结合FMix这类数据增强方式提升模型对复杂场景的泛化能力. 这一点很值得注意: 在更广义的声学任务中, Transformer的优势仍然来自它对长程上下文和全局依赖的建模能力, 而不仅仅是对文字输出序列的预测.
  • 语音增强与语音分离: 论文中相当大一部分工作都落在这一类应用上. 例如TRUNet把Transformer与Recurrent-U网络结合, 用于多通道混响环境下的声源分离; D2Net则将Transformer用于单通道复杂声学环境中的去噪和去混响. 这些方法说明, Transformer在声学领域的作用不一定直接输出文字, 它也可以先提升语音信号本身的可分辨性和可懂度, 再间接提升ASR性能. 换句话说, Transformer正在从"识别模型"扩展为"声学前端+声学建模"的一体化组件.
  • 流式识别与Transducer结构: 一个现实问题是, 标准Transformer虽然擅长全局建模, 但实时部署并不轻松. 因此论文讨论了Transformer-Transducer及其变体. 这类方法通过注意力mask策略, 单向编码器, 交错卷积层, 以及逐步下采样等设计, 在保留一定未来上下文建模能力的同时, 控制延迟和计算成本. 这里反映出Transformer在声学侧的一个重要演化方向: 不再单纯追求离线精度, 而是开始强调低时延, 流式对齐以及端侧部署可行性.
  • 协同训练与轻量化声学编码器: 论文还提到, 对于儿童受损语音识别(on-device ASR, speech-impaired children speech)等特殊场景, 可以通过协同训练(collaborative training)提升声学编码器的性能和效率. 同时, 低秩Transformer等轻量化设计被用于压缩参数量, 提升训练与推理速度. 这意味着Transformer在声学领域的应用已经不再只是追求更大模型, 而是开始同时关注鲁棒性, 计算效率和设备适配性.
  • 多任务统一声学建模: 论文还介绍了all-in-one Transformer声学模型, 将ASR, 音频标签(audio tagging)和声学事件检测(acoustic event detection)统一到同一个框架中, 并结合CTC来保留序列顺序与时间对齐信息. 这一类方法体现了Transformer的另一个价值: 它适合作为统一的声学建模骨架, 在一个共享表示空间里同时服务多个相关任务.

如果把这些工作放在一起看, 可以发现Transformer在声学领域的应用大致体现出三条主线. 第一条主线是作为更强的声学编码器, 直接替代传统RNN/CNN式声学模型, 提升长时依赖建模能力; 第二条主线是作为通用声学表征学习器, 通过自监督学习, 多流融合和多任务训练获得更有迁移性的表示; 第三条主线是作为复杂声学处理模块, 被用于增强, 去混响, 分离和流式对齐等前端或中间环节. 这说明在现代ASR系统里, Transformer并不是单一模块, 而更像是一种可插入多个层面的通用建模范式.

不过, 论文也隐含指出了几个现实限制. 一是长音频带来的显存与计算开销问题; 二是对噪声, 静音, 说话人差异和异常输入的鲁棒性仍需专门设计; 三是如果要进入实时和端侧场景, 往往必须结合Transducer, 轻量化注意力, 卷积下采样或记忆增强机制. 因此, Transformer在声学领域的价值不应简单理解为"注意力比循环网络更先进", 而应该理解为: 它为语音信号提供了一种统一的全局建模框架, 但要真正落地, 仍然需要围绕鲁棒性, 效率和流式性做大量工程化改造.

语言领域

Transformer在语言领域的应用主要体现在: 利用自注意力机制更好地建模上下文依赖, 对ASR初始输出进行后处理纠错, 与CTC/Attention端到端框架联合训练, 以及处理代码切换和特定语言场景中的语言建模问题. 如果说声学侧更关注"听到什么", 那么语言侧更关注"这些词放在一起是否像一句自然的话". Transformer之所以适合这一层, 是因为它可以同时看更长范围的上下文, 对词与词之间的依赖关系建模得更灵活.

  • 上层注意力并不总是必须保留: 论文先讨论了一个很有意思的发现. 在语音识别Transformer中, 如果把上层的self-attention替换成前馈层, 性能并不会明显下降, 有时甚至还会有小幅提升. 配套提出的注意力对角化指标表明, 编码器较低层往往负责捕获更强的上下文依赖, 而越往上的层, 注意力矩阵越接近对角线, 更像局部处理. 这说明在语言建模相关的部分, Transformer虽然提供了全局视野, 但并不是每一层都必须维持同样强的全局注意力. 对ASR来说, 一旦底层已经把足够的上下文编码进去, 上层有时可以更偏向局部整合和输出映射.
  • 基于BERT初始化的后处理模型: 论文提到, Transformer在语言领域一个非常直接的用法, 是作为ASR输出的后处理(post-processing)模型. 这类方法把初始识别结果看成一个"有噪声的文本序列", 再利用预训练语言模型, 特别是BERT初始化的Transformer encoder-decoder, 去做纠错和润色. 它的本质很像文本校正: 声学模型先给出一版结果, 语言模型再根据上下文判断哪些词更合理, 哪些地方可能是识别错误. 论文指出, 这种做法在LibriSpeech上尤其对噪声更重的测试集更有效, 说明Transformer型语言模型在"用上下文修正声学错误"这件事上非常有价值.
  • 预训练AM和LM的联合端到端建模: 3.1.2节还重点提到, CTC和attention联合的端到端框架可以更充分地利用预训练声学模型和预训练语言模型. 例如, 编码器可以由wav2vec 2.0一类自监督声学模型初始化, 解码器则由DistilGPT2之类的预训练语言模型初始化. 在这个结构里, CTC分支的作用很关键, 它帮助编码器更快收敛, 也在搜索时把所有可能的时间边界考虑进去. 这种做法说明, Transformer在语言领域的价值不只是独立训练一个LM, 更重要的是作为端到端ASR系统中的语言先验, 与声学表示协同工作.
  • 代码切换(code-switching)建模: 代码切换是语言领域里非常典型也非常困难的ASR问题. 同一句话里混合多种语言时, 传统语言模型很容易失效, 因为它默认文本来自单一稳定分布. 论文提到的多编码器-多解码器Transformer, 通过语言特定的编码器和注意力机制来增强声学表示, 并在单语数据上预训练, 以缓解代码切换训练数据不足的问题. 这里可以看出Transformer的一个优势: 它容易扩展成多分支, 多头, 多源的结构, 从而把不同语言的先验信息整合到同一个识别系统中.
  • 特定语言和特定文本风格的语言建模: 论文还列举了阿拉伯语《古兰经》诵读识别的例子. 在这种场景里, 语言分布, 发音习惯和文本风格都很特殊, 通用LM往往不够好. 因此研究中采用基于注意力的encoder-decoder Transformer, 并配合RNN/LSTM训练的n-gram词级语言模型. 这个例子说明, Transformer型语言模型并不一定完全替代传统语言模型; 在很多具体任务中, 更常见的做法是把Transformer作为核心序列建模器, 再和已有语言模型或领域先验结合, 以适应特定语料和特定语言现象.

如果把论文中的这些工作串起来看, Transformer在语言领域大致承担了三类角色. 第一类是上下文建模器, 用来自然地捕捉长距离依赖, 判断一个词在当前上下文里是否合理; 第二类是识别结果校正器, 在声学解码之后再进行文本级纠错; 第三类是端到端系统中的语言先验模块, 与CTC, attention decoder, 预训练AM/LM一起构成更完整的识别框架. 这也意味着, 语言领域中的Transformer应用往往不像声学侧那样强调时频建模, 而是更强调语义连贯性, 词序关系以及跨词上下文约束.

不过, 论文这一节也隐含了几个值得注意的点. 第一, 语言模型再强, 也很难完全弥补前端声学错误, 所以它更适合做"修正"而不是"替代"声学建模. 第二, 对代码切换, 低资源语言和领域特定文本来说, 训练数据依然是瓶颈, 这也是为什么论文里多次出现预训练, 多语训练和迁移初始化. 第三, Transformer型LM虽然上下文能力强, 但在实际ASR系统里通常需要和CTC, beam search, n-gram重打分或外部LM协同, 才能把这种语言优势稳定转化为WER下降. 因此, 可以把Transformer在语言领域的作用概括为: 它让ASR系统更会"读句子", 更会利用上下文判断哪种转写更自然, 但它的最佳效果通常来自与声学模型和解码机制的协同, 而不是孤立存在.