XLSR-Wav2Vec2:用于语音识别的无监督跨语言表示学习

摘要

本文提出了 XLSR ,该方法通过从多种语言的原始语音波形中预训练单个模型,以学习跨语言的语音表示。我们基于 wav2vec 2.0 构建模型,该方法通过对掩蔽后的潜在语音表示解决对比任务进行训练,并联合学习在多种语言之间共享的潜在量化表示。预训练完成后的模型可以在带标签数据上进行微调。实验表明,跨语言预训练显著优于单语预训练。在 CommonVoice 基准上,XLSR 相较于已知最优结果在音素错误率上有 72% 的相对减少;在 BABEL 数据集上,我们的方法相较于一个可比系统在词错误率上有 16% 的相对提升。我们的方法使得构建一个竞争力与强单语言模型媲美的多语言语音识别模型成为可能。分析显示,离散的潜在语音表示在不同语言之间是共享的,对于相关语言这种共享程度更高。我们希望通过发布在 53 种语言上预训练的大型模型 XLSR-53,进一步推动低资源语音理解的研究。

1 引言

跨语言学习的目标是构建能够利用其他语言数据来提升性能的模型。这一直是语音研究社区长期关注的课题(Byrne et al., 2000;Le & Besacier, 2009;Ghoshal et al., 2013;Huang et al., 2013;Gales et al., 2017;Cho et al., 2018;Seki et al., 2018),相关工作包括能够转录多种语言的系统(Burget et al., 2010;Bourlard et al., 2011;Heigold et al., 2013;Toshniwal et al., 2018;Kannan et al., 2019)。然而,目前大多数语音处理工作仍聚焦于监督式的跨语言训练,这需要多种语言的带标签数据。而转录语音数据往往比无标签语音数据更加稀缺,并且需要大量人工注释。

无监督表示学习 (或称预训练)不依赖带标签数据,近年来在计算机视觉领域受到了广泛关注(Tian et al., 2019;He et al., 2019;Chen et al., 2020),这一趋势源于其在自然语言处理中的成功(Peters et al., 2018;Devlin et al., 2018)。在自然语言处理领域,跨语言预训练被证明对于低资源语言特别有效(Lample & Conneau, 2019;Conneau et al., 2019)。在语音处理方面,现有的大多数工作聚焦于单语的无监督表示学习(van den Oord et al., 2018;Chung & Glass, 2018;Schneider et al., 2019;Chung et al., 2019;Baevski et al., 2020b;Harwath et al., 2020;Jiang et al., 2019;Tjandra et al., 2019;Eloff et al., 2019;Baevski et al., 2020a)。

本文聚焦于跨语言设置,即在无标签数据上学习可跨语言泛化的表示。我们基于 Baevski et al.(2020c)提出的预训练方法扩展而来,该方法联合学习了上下文化的语音表示和潜在语音表示的离散词表。后者用于通过对比损失有效训练模型(见 §2),这些离散的语音表示在语言之间是共享的(见图 1)。与近期无监督跨语言预训练工作不同,我们在模型微调阶段对 Transformer 部分进行微调,而不是冻结所有预训练表示(Rivière et al., 2020),也不是将其作为输入传入另一个下游模型(Kawakami et al., 2020)。我们在 Rivière et al.(2020)工作的基础上进行了扩展,从只在英文上预训练扩展到了多种语言,并基于一个更强的基线进行实验。

我们在 BABEL 基准测试中的 14 种语言上评估了 XLSR(Gales et al., 2014),该数据集为电话对话语音;同时也在 CommonVoice(Ardila et al., 2019)中的 10 种语言上进行了评估,这是一个朗读语音语料库(见 §3)。在大多数情况下,多语言预训练优于单语预训练,只有在资源丰富的语言上例外。我们进一步展示了模型容量的提升能够显著缩小这一差距。我们还证明,XLSR 表示可以同时在多种语言上进行微调,从而获得一个多语言语音识别系统,其性能可与分别在每种语言上微调单独模型的效果相媲美(见 §4)。

2 方法

无监督跨语言表示学习已通过使用多语言的 masked language model(Devlin et al., 2018;Lample & Conneau, 2019)对 Transformer(Vaswani et al., 2017)进行预训练,在多个任务中取得了巨大成功。在本研究中,我们通过将 wav2vec 2.0(Baevski et al., 2020c)扩展到跨语言设置,来学习跨语言语音表示。我们的方法学习了一组在多种语言之间共享的量化潜在语音表示。接下来,我们将概述模型架构(§ 2.1)、训练方式(§ 2.2)以及面向跨语言训练所做的调整。

2.1 模型架构

我们遵循 Baevski 等人(2020c)中所描述的设计选择。该模型包含一个卷积特征编码器 f : X → Z,用于将原始音频 X 映射为潜在语音表示 z 1 , ... , z T \mathbf { z } _ { 1 } , \ldots , \mathbf { z } _ { T } z1,...,zT,这些表示随后被送入 Transformer 网络 g : Z → C,输出上下文表示 c 1 , ... , c T \mathbf { c } _ { 1 } , \ldots , \mathbf { c } _ { T } c1,...,cT(Devlin et al., 2018;Baevski et al., 2020a,b)。为了训练模型,特征编码器的输出会通过量化模块 Z → Q 离散化为 q 1 , ... , q T \mathbf { q } _ { 1 } , \dots , \mathbf { q } _ { T } q1,...,qT,用作自监督学习目标的目标表示(参见图 1 和 §2.2)。

量化过程基于产品量化(product quantization)(Jegou et al., 2011;Baevski et al., 2020b),从 G = 2 个码本中选择量化表示,每个码本含有 V = 320 个条目。所选条目的连接构成 q。Gumbel Softmax(Jang et al., 2016)使得选择离散码本条目过程保持完全可微。每个 z t z_t zt 表示约 25ms 的音频,并以 20ms 的步幅进行滑动。上下文网络的架构遵循 BERT(Vaswani et al., 2017;Devlin et al., 2018),但使用了相对位置嵌入(Mohamed et al., 2019;Baevski et al., 2020a)来代替原始的绝对位置嵌入。

2.2 训练

该模型通过解决一个基于掩码的特征编码器输出的对比任务进行训练。在掩码操作中,我们以概率 p = 0.065 从所有时间步中采样作为起始索引,并掩盖后续 M = 10 个时间步。

训练目标是要求模型在一个包含 K = 100 个干扰项 Q t Q_t Qt(从其他掩码时间步中采样)中识别出某个被掩码时间步的真实量化表示 q t q_t qt。目标函数如下: − log ⁡ exp ⁡ ( s i m ( c t , q t ) ) ∑ q ~ ∼ Q t exp ⁡ ( s i m ( c t , q ~ ) ) \begin{array} { r } { - \log \frac { \exp ( s i m ( \mathbf { c } _ { t } , \mathbf { q } _ { t } ) ) } { \sum _ { \tilde { \mathbf { q } } \sim \mathbf { Q } _ { t } } \exp ( s i m ( \mathbf { c } _ { t } , \tilde { \mathbf { q } } ) ) } } \end{array} −log∑q~∼Qtexp(sim(ct,q~))exp(sim(ct,qt)) ,其中 c t c_t ct 是 Transformer 的输出,sim(a, b) 表示余弦相似度。

我们还加入了 码本多样性惩罚项 (Dieleman et al., 2018)以鼓励模型充分使用所有码本条目。具体而言,我们最大化每个码本组在一个 batch 中 softmax 平均分布的熵。设 p ˉ g { \bar { p } } _ { g } pˉg 为第 g 个码本组的平均 softmax 分布,则多样性损失为: 1 G V ∑ g = 1 G − H ( p ˉ g ) = 1 G V ∑ g = 1 G ∑ v = 1 V p ˉ g , v log ⁡ p ˉ g , v \begin{array} { r } { \frac { 1 } { G V } \sum _ { g = 1 } ^ { G } - H ( \bar { p } _ { g } ) = } \end{array}\textstyle \frac { 1 } { G V } \sum _ { g = 1 } ^ { G } \sum _ { v = 1 } ^ { V } \bar { p } _ { g , v } \log \bar { p } _ { g , v } GV1∑g=1G−H(pˉg)=GV1∑g=1G∑v=1Vpˉg,vlogpˉg,v,其中 G 为码本组数,V 为每组的条目数。为了稳定特征编码器的训练,我们还对其输出施加了 L2 正则项。

在对 L 种语言进行预训练时,我们采用 多语言 batch 采样策略 (Devlin et al., 2018;Lample & Conneau, 2019),即从多项分布中采样语音样本,其分布为: ( p l ) l = 1 , ... , L ( p _ { l } ) _ { l = 1 , \dots , L } (pl)l=1,...,L , p l ∼ ( n l N ) α p _ { l } \sim\left( \frac { nl } { N } \right) ^ { \alpha } pl∼(Nnl)α ,其中 n l n_l nl 是语言 l 的预训练小时数,N 是总小时数, α \alpha α 是上采样因子。参数 α \alpha α 控制了预训练中高资源语言与低资源语言之间的权重分配。

3 实验设置

3.1 数据集

CommonVoice. CommonVoice 数据集²是一个多语言的朗读语音语料库,包含 38 种语言、总时长超过两千小时的语音数据(Ardila 等,2019)。每种语言的数据量从瑞典语的三小时("低资源")到法语的 353 小时、英语的 1350 小时("高资源")不等。按照 Rivière 等人(2020)的设置,我们选取十种语言:西班牙语(es)、法语(fr)、意大利语(it)、吉尔吉斯语(ky)、荷兰语(du)、俄语(ru)、瑞典语(sv)、土耳其语(tr)、鞑靼语(tt)和中文(zh);并使用英语(en)进行预训练。我们采用 2019 年 11 月发布的版本进行模型训练,微调时使用 Rivière 等人(2020)所提供的评估划分数据集,其中包括一小时标注数据用于训练,20 分钟用于验证,一小时用于测试。该小样本评估数据集的输出是音素序列,我们按照已有工作报告音素错误率(PER)。

BABEL. BABEL 数据集³是 IARPA 提供的多语言电话会话语音语料库,包含亚洲和非洲语言(Gales 等,2014)。我们按照 Cho 等人(2018)的设置,在以下十种语言上进行预训练:孟加拉语(bn)、粤语(zh)、格鲁吉亚语(ka)、海地语(ht)、库尔曼吉语(ku)、普什图语(ps)、泰米尔语(ta)、土耳其语(tr)、托克皮辛语(tp)、越南语(vi)。我们在以下四种未参与预训练的语言上评估跨语言迁移能力:阿萨姆语(as)、塔加洛语(tl)、斯瓦希里语(sw)、老挝语(lo)。我们在十种语言上训练一个多语言模型,在十四种语言上训练单语模型。预训练和微调使用相同的语音音频,不使用 BABEL 提供的未标注语音。我们将 BABEL 数据集中的 dev 文件夹作为测试集(因为 "eval" 未开源),并将训练集的 10% 用作验证集。我们报告的是字符错误率(CER)。所有音频重采样为 16kHz。为与 Inaguma 等人(2019)进行比较,我们在 CommonCrawl 数据(Heafield 等,2013;Wenzek 等,2019)上训练 4-gram 的 n-gram 语言模型,用于阿萨姆语(140MiB 文本数据)、斯瓦希里语(2GiB)、泰米尔语(4.8GiB)和老挝语(763MiB)。

Multilingual LibriSpeech (MLS). Multilingual LibriSpeech 数据集(Pratap 等,2020)是一个大型语料库,源自 LibriVox 的有声书朗读音频,包含 8 种语言:荷兰语(du)、英语(en)、法语(fr)、德语(de)、意大利语(it)、波兰语(pl)、葡萄牙语(pt)、西班牙语(es)。该语料库的最新版本约含 5 万小时数据,其中英语占 4.4 万小时。我们将该语料库与 CommonVoice 和 BABEL 数据集结合起来,训练一个覆盖 53 种语言的大型模型 XLSR-53。

3.2 训练细节

预训练 模型基于 fairseq(Ott 等,2019)实现。我们评估了两种具有相同特征编码器(§2.1)的架构,但使用了不同的 Transformer 设置:Base 架构包含 12 个 block,模型维度为 768,前馈网络(FFN)维度为 3072,注意力头数为 8;Large 架构包含 24 个 block,模型维度为 1024,前馈网络维度为 4096,注意力头数为 16;两者的 dropout 均为 0.1。对于 Base,我们裁剪 250k 个样本(约 15.6 秒音频),每张 GPU 上最多加载 1.4M 个样本;对于 Large,我们裁剪 320k 个样本,每张 GPU 上最多加载 1.2M 个样本。批次采样时使用因子α ∈ {0.5, 1}。小型数据集(通常是单语)使用 16 块 GPU 训练,大型数据集(通常是多语种)使用 64 块 GPU 训练。优化器采用 Adam(Kingma & Ba,2015),学习率在前 10% 的更新中线性升温,Base 模型的峰值学习率为 1e-5,Large 模型为 1e-3,之后在总共 250k 步内线性衰减。

温馨提示:

阅读全文请访问"AI深语解构 " XLSR-Wav2Vec2:用于语音识别的无监督跨语言表示学习

相关推荐
静心问道2 分钟前
SELF-INSTRUCT:使用自生成指令对齐语言模型
人工智能·语言模型·大模型
芷栀夏8 分钟前
基于Anything LLM的本地知识库系统远程访问实现路径
数据库·人工智能
AI生存日记8 分钟前
AI 日报:阿里、字节等企业密集发布新技术,覆盖语音、图像与药物研发等领域
人工智能·华为云·语音识别·open ai大模型
hjs_deeplearning27 分钟前
认知篇#10:何为分布式与多智能体?二者联系?
人工智能·分布式·深度学习·学习·agent·智能体
kngines1 小时前
【字节跳动】数据挖掘面试题0001:打车场景下POI与ODR空间关联查询
人工智能·数据挖掘·面试题
.30-06Springfield3 小时前
利用人名语言分类案例演示RNN、LSTM和GRU的区别(基于PyTorch)
人工智能·pytorch·python·rnn·分类·gru·lstm
xingshanchang5 小时前
PyTorch 不支持旧GPU的异常状态与解决方案:CUDNN_STATUS_NOT_SUPPORTED_ARCH_MISMATCH
人工智能·pytorch·python
reddingtons6 小时前
Adobe Firefly AI驱动设计:实用技巧与创新思维路径
大数据·人工智能·adobe·illustrator·photoshop·premiere·indesign
CertiK6 小时前
IBW 2025: CertiK首席商务官出席,探讨AI与Web3融合带来的安全挑战
人工智能·安全·web3
Deepoch7 小时前
Deepoc 大模型在无人机行业应用效果的方法
人工智能·科技·ai·语言模型·无人机