摘要

本文提出了 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 映射为潜在语音表示z1,…,zT\mathbf { z } _ { 1 } , \ldots , \mathbf { z } _ { T }z1,,zT,这些表示随后被送入 Transformer 网络 g : Z → C,输出上下文表示 c1,…,cT\mathbf { c } _ { 1 } , \ldots , \mathbf { c } _ { T }c1,,cT(Devlin et al., 2018;Baevski et al., 2020a,b)。为了训练模型,特征编码器的输出会通过量化模块 Z → Q 离散化为 q1,…,qT\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)使得选择离散码本条目过程保持完全可微。每个 ztz_tzt 表示约 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 个干扰项 QtQ_tQt(从其他掩码时间步中采样)中识别出某个被掩码时间步的真实量化表示 qtq_tqt。目标函数如下:−log⁡exp⁡(sim(ct,qt))∑q~∼Qtexp⁡(sim(ct,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}logq~Qtexp(sim(ct,q~))exp(sim(ct,qt)) ,其中 ctc_tct 是 Transformer 的输出,sim(a, b) 表示余弦相似度。

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

在对 L 种语言进行预训练时,我们采用 多语言 batch 采样策略(Devlin et al., 2018;Lample & Conneau, 2019),即从多项分布中采样语音样本,其分布为:(pl)l=1,…,L( p _ { l } ) _ { l = 1 , \dots , L }(pl)l=1,,Lpl∼(nlN)αp _ { l } \sim\left( \frac { nl } { N } \right) ^ { \alpha }pl(Nnl)α ,其中nln_lnl 是语言 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:用于语音识别的无监督跨语言表示学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89813.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89813.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89813.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图灵完备之路(数电学习三分钟)----数据选择器与总线

1.数据选择器之前我们学习了逻辑与算数的计算,得知两个数字之间的加减和与或的结果是不同的,而一个通用的数字电路不可能只有一个功能,所以我们将在本节引入电路选择器这一“器件”,来实现对两个输入的运算方式的选择,…

Linux下如何设置CUDA的路径

今天遇到一个关于CUDA的问题,我要跑的深度学习代码,他里面有cuda编程,需要编译。但是你运行就报错。 代码提示我大段报错。 (score-denoise) ubuntuGPUA10002:~/wbd/score-denoise_Transformerdepth20$ python train.py Detected CUDA fil…

js树的排序

树 树的前中后序遍历 树是一种重要的非线性数据结构,尤其是二叉树。二叉树的遍历是操作树的基础,主要有前序遍历、中序遍历和后序遍历三种方式。 前序遍历 访问顺序:根结点 -> 左子树 -> 右子树。 遍历规则:首先访问根结…

解码 Red Stuff:Walrus 高效可靠存储的引擎

Red Stuff 是 Walrus 所采用的二维(2D)纠删码协议,定义了数据如何被编码和存储。它是实现高效、安全、且高可用的去中心化存储的关键。通过 Red Stuff,Walrus 成功解决了去中心化存储系统常见的三大难题:安全性、复制效…

【ACP】阿里云云计算高级运维工程师--ACP

文章目录1、简要介绍2、核心特点3、考试相关信息4、适合人群1、简要介绍 阿里云云计算认证ACP(Alibaba Cloud Certified Professional)是面向云计算技术与应用从业者的专业级认证,旨在评估考生对阿里云云计算产品的理解、部署、运维及最佳实…

快速掌握Python编程基础

干货分享,感谢您的阅读!备注:本博客将自己初步学习Python的总结进行分享,希望大家通过本博客可以在短时间内快速掌握Python的基本程序编码能力,如有错误请留言指正,谢谢!(持续更新&a…

「Java案例」鸡兔同笼问题

案例解析 鸡兔同笼求解 《孙子算经》是中国古代重要的数学著作,成书于南北朝时期,其中就记载了一个有趣的问题:鸡和兔在同一个笼子里,鸡和兔共有n条腿, m个头,问鸡和兔各有多少只?编写一个程序…

BLDC电机-运动控制---stm32时钟树定时器SYSTICKRTC的学习

一、时钟树 二、基本定时器 三、通用定时器 四、高级定时器 五、SYSTICK 六、RTC

Implementing a User-Defined Preconditioner in PETSc

文章目录Implementing a User-Defined Preconditioner in PETScBasic ApproachExample ImplementationUsing Your PreconditionerAdvanced OptionsImportant NotesUsing PCShell to Implement User-Defined Preconditioners in PETScBasic Implementation StepsAdvanced Featur…

DotNetBrowser 3.3.0 版本发布啦!

#Chromium 137 安全修复一次调用即可下载 URL更新了 Widevine APIDOM 元素绝对边界 🔗 点击此处了解更多详情。 🆓 获取 30 天免费试用。

Android-自定义View的实战学习总结

一、自定义View歌词界面LrcView 类-->自定义的歌词视图1. 构造函数和属性初始化自定义 View 通常需要提供多个构造函数以支持不同的初始化方式。在 LrcView 中,提供了四个构造函数,最终调用 super 父类构造函数完成初始化, context.obtain…

Maven 在 Eclipse 中的使用指南

Maven 在 Eclipse 中的使用指南 概述 Maven 是一个强大的构建自动化工具,用于项目管理和构建。它简化了项目构建、依赖管理和项目报告等任务。Eclipse 是一个流行的集成开发环境(IDE),支持多种编程语言,包括 Java。本文将详细介绍如何在 Eclipse 中使用 Maven 进行项目管…

zxing去白边

2025年了,可能干不了几年了,还能写这种文章还是有点可笑。 背景 zxing库生成的二维码自带白边 分析 生产二维码主要分两步: 1.用QRCodeWriter生成BitMatrix信息 2.根据信息生成bitmap 问题在1。 生成二维码的尺寸实际是有一些规格的&a…

Linux操作系统之文件(三):缓冲区

前言: 上节课我们讲授重定向的概念时,曾提到了一点缓冲区的概念。本文将会为大家更详细的带来缓冲区的有关内容:用户级缓冲区是什么,以及其与内核级缓冲区的关系,最后,我会为大家模拟实现一下stdio.h的关于…

Linux云计算基础篇(7)

一、< 输入重定向 wc -l < filelist .txt 统计数据&#xff0c;从file这个文件拿结果。 二、tr 转换字符命令 $ tr A-Za-z<.bash_profile 将bash_profile文件中的大写字符全部转成小写字符 三、管道符&#xff08;|&#xff09; com…

【学习笔记】Lean4基础 ing

文章目录 概述参考文档运行程序elan 命令行工具lean 命令行工具lake 命令行工具运行单文件程序Hello, world!验证 Lean4 证明 运行多文件项目 Lean4 基础语法注释表达式求值变量和定义定义类型变量 定义函数命名规则命名空间数据类型结构体构造子模式匹配多态List 列表Option 可…

FPGA实现40G网卡NIC,基于PCIE4C+40G/50G Ethernet subsystem架构,提供工程源码和技术支持

目录 1、前言工程概述免责声明 3、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的以太网方案 4、工程详细设计方案工程设计原理框图测试用电脑PClE4CDMA40G/50G Ethernet subsystem工程源码架构驱动和测试文件 5、Vivado工程详解1详解&a…

SAP从入门到放弃系列之流程管理概述

文章目录前言1.Process Management&#xff08;过程管理&#xff09;2.关键术语2.1Control recipe destination2.2 Process instruction characteristic2.3 Process message characteristic2.4 Process instruction category2.5 Process message category2.6 PI sheet3.关键配置…

RCLAMP0554S.TCT升特Semtech 5通道TVS二极管,0.5pF+20kV防护,超高速接口!

RCLAMP0554S.TCT&#xff08;Semtech&#xff09;产品解析与推广文案 一、产品定位 RCLAMP0554S.TCT是Semtech&#xff08;升特半导体&#xff09;推出的5通道超低电容TVS二极管阵列&#xff0c;专为超高速数据接口&#xff08;USB4/雷电4/HDMI 2.1&#xff09;提供静电放电&a…

【人工智能】DeepSeek的AI实验室:解锁大语言模型的未来

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 DeepSeek作为中国AI领域的先锋,以其开源大语言模型(LLM)DeepSeek-V3和DeepSeek-R1在全球AI研究中掀起波澜。本文深入探讨DeepSeek AI实验…