从头构建大型Transformer或Conformer模型可以取得显著成果,但这种方式需要两种稀缺资源:海量的标注训练数据和庞大的计算能力。对于许多组织和开发者来说,在这些限制下创建高质量的ASR系统是不切实际的。这一挑战促使该领域向使用预训练模型发生了重大转变。这些模型背后的核心思想是:首先在一个不需要手动创建标注的通用、大规模任务上训练一个大型神经网络,然后将这个已学习的模型应用于特定的、较小的标注数据集。这种两阶段过程,被称为预训练和微调,已成为在ASR中实现优异性能的标准做法。语音自监督学习的兴起促成语音预训练的创新是自监督学习(SSL)。与需要成对输入和输出(音频及其文本)的监督学习不同,自监督学习直接从输入数据生成自己的标注。这使得模型能够从大量未标注音频中学习到丰富且有意义的表征,而未标注音频比已转录音频更易获得。一般做法是向模型提供音频样本的修改版本,并训练它预测原始、未修改的版本。通过解决这个人工设定的问题,模型被迫学习人类语音的底层结构,例如语音学、协同发音和韵律,而无需看到任何文本标注。Wav2Vec 2.0:从原始音频中学习在语音方面最具影响力的自监督模型之一是Wav2Vec 2.0。它直接从原始音频波形中学习强大的语音表征。其架构由三个主要部分组成:特征编码器: 一个多层卷积神经网络(CNN)处理原始音频波形。它的任务是分割音频并将其转换为一系列潜在特征表征,通常以每25毫秒生成一个向量的速率。量化模块: 来自编码器的连续特征向量被离散化为有限的“语音单元”集合。这一步对自监督任务很重要,因为它将预测问题简化为分类任务。语境化器: 一个大型Transformer网络接收特征表征序列作为输入。在预训练期间,其中一些输入向量被遮蔽(置零)。Transformer的目标是利用周围语境预测被遮蔽位置的正确量化语音单元。这一过程类似于BERT等文本模型中的掩码语言建模。通过学习填补音频中的空白,Transformer的语境化器变得非常擅长理解语音话语不同部分之间的关系。从预训练到微调模型在数千小时的未标注音频上预训练完成后,可以将其适配特定ASR任务,例如转录英语电话通话。这第二个阶段被称为微调。过程简单明了:加载预训练模型: 使用Wav2Vec 2.0模型及其自监督阶段学习到的权重。量化模块被舍弃。添加分类头: 在Transformer之上添加一个新的、随机初始化的线性层。该层将Transformer的输出表征映射到你的目标词汇(例如,字符或音素)的概率。在标注数据上训练: 使用标准的ASR损失函数(例如CTC损失)在你的较小标注数据集上训练整个模型。由于模型的核心层已经理解语音,它能非常快速有效地学习到到文本字符的映射。微调阶段所需数据和计算量比从头训练显著减少,但它持续产生优异结果。digraph G { graph [fontname="Arial", splines=ortho]; node [shape=box, style="rounded,filled", fontname="Arial", margin=0.3]; edge [fontname="Arial", fontsize=10]; subgraph cluster_pretraining { label = "阶段 1:自监督预训练"; bgcolor="#e9ecef"; fontsize=12; node [fontcolor="#212529"]; unlabeled_data [label="未标注音频", fillcolor="#a5d8ff"]; ssl_model [label="Wav2Vec 2.0 模型\n(CNN编码器 + Transformer)", fillcolor="#74c0fc", width=3]; ssl_task [label="自监督目标:\n预测遮蔽音频单元", fillcolor="#4dabf7", width=3]; unlabeled_data -> ssl_model; ssl_model -> ssl_task [dir=both, label=" 学习通用语音结构"]; } subgraph cluster_finetuning { label = "阶段 2:监督微调"; bgcolor="#e9ecef"; fontsize=12; node [fontcolor="#212529"]; labeled_data [label="任务特定标注音频\n(例如,英语采访)", fillcolor="#b2f2bb"]; ctc_head [label="添加CTC分类头\n(将特征映射到字符)", fillcolor="#8ce99a", width=3]; finetuned_model [label="高性能ASR模型", fillcolor="#69db7c", shape=ellipse, width=3]; } pretrained_model_node [label="已加载的预训练模型", fillcolor="#1c7ed6", fontcolor="white", style="filled", width=3]; ssl_model -> pretrained_model_node [label=" 保存学习到的权重", style=dashed, lhead=cluster_finetuning, minlen=2]; labeled_data -> ctc_head; pretrained_model_node -> ctc_head [label=" 用作基础"]; ctc_head -> finetuned_model [label=" 在特定任务上训练"]; }构建现代ASR系统的两阶段工作流程。首先,模型从未标注数据中学习通用语音特征。其次,该预训练模型使用较小规模的标注数据适配特定转录任务。其他重要预训练模型虽然Wav2Vec 2.0是一个基础模型,但该领域持续演进。以下是另外几个需要了解的重要模型:HuBERT (Hidden-Unit BERT): 与Wav2Vec 2.0在思想上相似,HuBERT也使用掩码预测任务。其主要区别在于它如何为被遮蔽的步骤生成目标标注。它使用离线聚类步骤首先发现离散隐藏单元,使学习目标在训练期间更具一致性。Whisper: 由OpenAI开发,Whisper模型代表了一种不同的方法。它们并非纯粹的自监督,而是在一个庞大且多样化的数据集上以“弱监督”方式训练,该数据集包含来自网络的680,000小时音频,且已与文本配对。由于这些数据涵盖多种语言、主题、口音和声学环境,Whisper模型极其强大,无需任何微调即可在各种任务上表现良好。它们是多语言和多任务的,能够执行转录和翻译。使用Wav2Vec 2.0、HuBERT或Whisper等预训练模型极大地降低了构建高质量ASR系统的进入门槛。在即将进行的实践部分,你会看到这种方法有多么有效,我们将为自定义语音识别任务微调来自Hugging Face Hub的预训练模型。