WeNet 2.0:更高效的端到端语音识别工具包

news2024/9/25 19:14:09

WeNet 2.0:更高效的端到端语音识别工具包

原文链接:[2203.15455] WeNet 2.0: More Productive End-to-End Speech Recognition Toolkit (arxiv.org)

1.摘要

WeNet是一个开源的端到端语音识别工具包,WeNet 2.0在此基础上进行了四项主要更新,以提升其在生产环境中的适应性和性能。

主要更新内容:

  1. U2++ 框架:
    • 改进点:在原有U2框架的基础上增加了双向注意力解码器,通过右到左的注意力解码器引入未来上下文信息,提升了共享编码器的代表能力和重评分阶段的性能。
    • 性能提升:实验结果表明,U2++相较于原U2框架在多种语料库上的识别性能提升了10%。
  2. 生产语言模型解决方案:
    • 改进点:引入了基于n-gram的语言模型和基于加权有限状态转移(WFST)的解码器,促进了丰富文本数据在生产场景中的使用。
    • 性能提升:实验结果显示,n-gram语言模型在流式CTC解码阶段可提供高达8%的相对性能提升。
  3. 上下文偏置框架:
    • 改进点:设计了统一的上下文偏置框架,利用用户特定的上下文信息(例如联系人列表)提供快速适应能力,提高了有LM和无LM场景下的ASR准确率。
  4. 统一IO(UIO)系统:
    • 改进点:设计了统一的IO系统,支持大规模数据集的高效模型训练。UIO系统提供了针对不同存储介质(例如本地磁盘或云)的统一接口,以及对不同规模数据集(例如小数据集或大数据集)的统一支持。

2.Wenet2.0

2.1 U2++

U2++ 框架

U2++ 框架是对原始 U2 框架的增强,加入了双向注意力解码器。该方法结合了从左到右(L2R)和从右到左(R2L)的注意力解码器,在训练和解码期间利用了过去和未来的上下文信息。主要组成部分如下:

  1. 共享编码器:这个编码器捕捉声学特征信息,由多个 Transformer 或 Conformer 层组成。通过考虑有限的右上下文来平衡延迟。
  2. CTC 解码器:该解码器建模声学特征与标记单元之间的帧级对齐信息。CTC 解码器由一个线性层组成,该层将共享编码器的输出转换为 CTC 激活。
  3. 从左到右的注意力解码器 (L2R):该解码器从左到右建模有序标记序列,以表示过去的上下文信息。
  4. 从右到左的注意力解码器 (R2L):该解码器从右到左建模反向标记序列,以表示未来的上下文信息。L2R 和 R2L 注意力解码器都由多个 Transformer 解码器层组成。

在解码阶段,CTC 解码器在第一遍中以流模式运行,L2R 和 R2L 注意力解码器在第二遍中以非流模式重新评分,以提高性能。

在这里插入图片描述

相较于 U2 框架的改进

与 U2 框架相比,U2++ 额外加入了一个从右到左的注意力解码器,以增强模型的上下文建模能力,从而使上下文信息不仅来自过去(左到右解码器),还来自未来(右到左解码器)。这提高了共享编码器的表征能力、整个系统的泛化能力以及重新评分阶段的性能。

训练和解码过程

结合 CTC 和 AED 损失来训练 U2++ 模型:
L combined ( x , y ) = λ L CTC ( x , y ) + ( 1 − λ ) L AED ( x , y ) L_{\text{combined}}(x,y) = \lambda L_{\text{CTC}}(x,y) + (1-\lambda)L_{\text{AED}}(x,y) Lcombined(x,y)=λLCTC(x,y)+(1λ)LAED(x,y)
其中, x x x 表示声学特征, y y y 表示相应的标签, λ λ λ 是一个平衡 CTC 损失和 AED 损失的重要性超参数。

为了在模型中加入一个额外的 R2L 注意力解码器,我们在 AED 损失中引入一个超参数 α\alphaα 以调整两个单向解码器的贡献:
L AED ( x , y ) = ( 1 − α ) L L2R ( x , y ) + α L R2L ( x , y ) L_{\text{AED}}(x,y) = (1-\alpha)L_{\text{L2R}}(x,y) + \alpha L_{\text{R2L}}(x,y) LAED(x,y)=(1α)LL2R(x,y)+αLR2L(x,y)
动态块掩码策略用于统一流模式和非流模式。在训练阶段,我们首先从均匀分布中随机抽取一个块大小 CCC,然后将输入拆分为几个具有选择块大小的块。最后,当前块在 L2R/R2L 注意力解码器中分别对自身和前/后的块执行双向块级注意力。在解码阶段,第一遍 CTC 解码器获得的 n-best 结果由 L2R 和 R2L 注意力解码器利用共享编码器生成的相应声学信息重新评分。最终结果通过融合两个注意力解码器和 CTC 解码器的分数获得。

经验上,更大的块大小会带来更好的结果,但延迟也更高。感谢动态策略,U2++ 学会了以任意块大小进行预测,从而在解码中通过调整块大小简化了准确性和延迟的平衡。

2.2 语言模型

为了在生产环境中使用丰富的文本数据,我们在 WeNet 2.0 中提供了一个统一的语言模型 (LM) 集成框架。

作为一个统一的 LM 和无 LM 系统,CTC 被用于生成第一遍的 n-best 结果。当没有提供 LM 时,CTC 前缀波束搜索用于获取 n-best 候选。当提供了 LM 时,WeNet 2.0 将 n-gram LM (G)、词典 (L) 和端到端建模 CTC 拓扑 (T) 编译成基于 WFST 的解码图 (TLG):
T L G = T ∘ min ⁡ ( det ( L ∘ G ) ) TLG = T \circ \min(\text{det}(L \circ G)) TLG=Tmin(det(LG))
然后应用 CTC WFST 波束搜索来获得 n-best 候选。最终,通过注意力重新评分模块重新评分 n-best 候选以找到最佳候选。

在这里插入图片描述

2.3 上下文偏置

利用用户特定的上下文信息(例如联系人列表、导航信息)在语音生产中起着重要作用,它不仅显著提高了准确性,还提供了快速适应能力。WeNet 2.0 中设计了一个统一的上下文偏置框架,在流解码阶段利用了用户特定的上下文信息,无论是否使用 LM。

构建过程

  1. 偏置单元的分割:
    • 在无语言模型(LM-free)的情况下,根据 E2E 建模单元将偏置短语分割成偏置单元。
    • 在有语言模型(with-LM)的情况下,根据词汇表将偏置短语分割成词汇单元。
  2. 构建上下文 WFST 图:
    • 每个带有增强评分的偏置单元按顺序放置在相应的弧上以生成可接受的链。
    • 对于可接受链的每个中间状态,添加一个特殊的失败弧,其带有负的累计增强评分。失败弧用于在仅匹配部分偏置单元而非整个短语时移除增强评分 。

在图 3 中,分别展示了在无语言模型(LM-free)情况下的字符级上下文图和有语言模型(with-LM)情况下的词级上下文图。最终,在流式解码阶段,当光束搜索结果通过上下文 WFST 图与偏置单元匹配时,立即添加一个增强评分 。

公式如下:
y ∗ = arg ⁡ max ⁡ y log ⁡ P ( y ∣ x ) + λ log ⁡ P C ( y ) y^* = \arg\max_y \log P(y|x) + \lambda \log P_C(y) y=argymaxlogP(yx)+λlogPC(y)
其中 P C ( y ) P_C(y) PC(y)是偏置分数, λ λ λ​是一个可调的超参数,用于控制上下文LM对整体模型分数的影响程度。特别是,当一些偏置短语共享相同的前缀时,我们会进行贪婪匹配以简化实现。

在这里插入图片描述

2.4 统一 IO (UIO)

为了处理大规模生产数据集并同时保持对小数据集的高效性,我们设计了一个统一的 IO 系统,提供了针对不同存储(例如本地磁盘或云存储)和不同规模数据集(例如小数据集或大数据集)的统一接口。对于大数据集,我们将每组样本(例如1000个样本)及其相关的元数据信息打包到一个更大的 shard 中。在训练阶段,内存中进行动态解压缩,同一压缩 shard 中的数据按顺序读取,从而解决了时间消耗的问题并加速训练过程。对于小数据集,我们也可以直接加载训练样本。

在这里插入图片描述

3.实验

这一章描述了我们的实验设置、测试集,并分析了实验结果。大多数实验设置在WeNet的recipes中可用。实验涉及以下所有或部分语料库:AISHELL-1【28】、AISHELL-2【29】、LibriSpeech【30】、GigaSpeech【31】和最近发布的WenetSpeech【32】。这五个语料库包括不同的语言(英语和普通话)、录音环境(干净和嘈杂)和规模(100到10000小时)。

3.1. U2++

为了评估U2++模型的有效性,我们在上述所有5个ASR语料库上进行了实验。对于大多数实验,使用80维的对数梅尔滤波器组(FBANK),窗口长度为25ms,移位为10ms作为声学特征。在数据增强中应用了SpecAugment【33】。在编码器的前端使用两个卷积子采样层,卷积核大小为3x3,步幅为2。我们在编码器中使用12层Conformer层。为了保持U2和U2++的参数可比性,我们在U2/U2++中分别使用了6层Transformer解码器。最终模型通过模型平均化获得。在AISHELL-1和AISHELL-2中,注意力层的维度为256,前馈神经网络的维度为2048,注意力头数为4。在LibriSpeech、GigaSpeech和WenetSpeech中,注意力层的维度为512,前馈神经网络的维度为2048,注意力头数为8。卷积模块的卷积核大小分别为8/8/31/31/15。使用累积梯度来稳定训练。

在表1中,我们报告了每个语料库的字符错误率(CER)、单词错误率(WER)或混合错误率(MER)。结果显示,U2++在大多数语料库上优于U2,在某些语料库上相对于U2实现了高达10%的相对改进。从结果中,我们可以看出,U2++在各种类型和规模的ASR语料库中表现出优越的性能。

在这里插入图片描述

3.2. N-gram语言模型

N-gram语言模型能够捕获单词间的上下文信息,从而减少识别错误。我们使用KenLM工具【34】训练了N-gram模型,并将其与U2++模型结合。实验结果表明,结合N-gram语言模型后,识别性能得到了显著提高。

在这里插入图片描述

3.3 上下文偏置

在这一部分,研究了在不同情境下对语音识别的效果进行了测试和分析。特别地,研究了在联系人场景中的情境偏置。

测试集设计

研究设计了两个测试集来评估情境偏置的效果:

  • test p(positive test set):正向测试集,包含相关的上下文。选取了107个包含人名的语音,并在解码时将所有人名作为情境偏置短语加入。
  • test n(negative test set):负向测试集,不包含任何情境偏置短语(如人名)。随机选择了107个适合的语音作为负向测试集。

实验设置

实验使用了AISHELL-1的U2++模型,并分别在有无语言模型(LM)的情况下进行了测试。情境偏置的强度可以通过调整boosted score来控制,boosted score的取值范围为0到10,其中0表示不应用情境偏置。

实验结果

实验结果如表3所示:

  • 无LM时:随着boosted score的增加,正向测试集(test p)的错误率显著降低。在boosted score为7时,错误率从14.94%降到6.17%。负向测试集(test n)的错误率则在7.45%到8.06%之间波动。
  • 有LM时:正向测试集(test p)的错误率同样随着boosted score的增加而降低,在boosted score为10时,错误率从13.95%降到9.14%。负向测试集(test n)的错误率则保持稳定,在7.20%到7.33%之间。

总体来看,适当的boosted score可以显著提高正向测试集的性能,同时避免对负向测试集性能的影响。这表明情境偏置技术在特定上下文中能够有效提高语音识别的准确性。

在这里插入图片描述

3.4. UIO

在AISHELL-1上,原始模式和分片模式下的UIO准确率接近,而分片模式的训练速度提高了约9.27%。对于Wenet-Speech,因为它太慢了,不能只使用原始模式进行训练,所以训练速度没有显示。我们采用ESPnet的结果(用†标记)作为我们的基线,它与我们的模型具有相同的配置。基于分片模式的Wenet-Speech模型训练结果与ESPnet相当,进一步证明了UIO算法的有效性。

在这里插入图片描述

我们采用ESPnet的结果(用†标记)作为我们的基线,它与我们的模型具有相同的配置。基于分片模式的Wenet-Speech模型训练结果与ESPnet相当,进一步证明了UIO算法的有效性。

4总结

在本文中,我们提出了更具生产力的 E2E 语音识别工具包 WeNet 2.0,它引入了几个重要的面向生产的特性并实现了显著的 ASR 性能改进。我们正在开发 WeNet 3.0,主要专注于无监督自学习、设备端模型探索和优化以及其他生产工作

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简明 | Yolo-v3结构理解摘要

简明 | ResNet特点、残差模块、残差映射理解摘要 目录 整体结构 DBL Res-n Res-unit concat 上采样 整体结构 网络主要包括两部分,一个部分是主干网络Darknet-53,一个部分使用特征金字塔(FPN)融合、加强特征提取并利用卷积进行预测。 DBL DBL&am…

从人工巡检到智能监管:视频AI智能监管技术驱动风电场智慧化发展

一、背景分析 随着全球对可再生能源需求的持续增长,风电作为清洁、可再生的能源形式,其重要性日益凸显。然而,风电场通常分布在偏远地区,面积广阔,环境复杂多变,这给风电场的运维管理带来了巨大挑战。为了…

CleanMyMac可以一键清理电脑,让Mac系统运行得更加流畅。有关CleanMyMac可以删除Mac重复的文件吗?苹果电脑怎么快速找到重复文件的问题?

一、CleanMyMac可以删除Mac重复的文件吗 作为一款专业级的苹果电脑清理软件,CleanMyMac具备多项深度清理和系统维护工具。软件拥有强大的文件管理系统,可以利用“空间透镜”等工具,筛选出相同体积、名称的文件。 图1:用CleanMyMa…

计算机网络408考研 2019

计算机网络408考研2019年真题解析_哔哩哔哩_bilibili 2019 1 1 1 1

麦田物语第二十天

系列文章目录 麦田物语第二十天 文章目录 系列文章目录一、构建地图信息系统二、生成地图数据 一、构建地图信息系统 我们上一节课已经做好了鼠标的显示,这节课需要构建地图的一些信息,例如:可挖坑,可丢弃物品等地区。我们点击地…

Altium designer学习笔记02 - 原理图库的创建与绘制

原理图库的创建与绘制 1. 元件符号的概述2. 单部件元件符号的绘制-实例电容3.子件原件符号的创建绘制(示例 放大器)4.已存在原理图直接生成元件库5.元件库的拷贝6.元件的检查与报告 1. 元件符号的概述 元件符号是元件在原理图上的表现形式,主…

Java语言程序设计——篇十二

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿 欢迎大家:这里是我的学习笔记、总结知识的地方,喜欢的话请三连,有问题可以私信🌳🌳&…

winform chart标记

下图为某个点的值大于25即标记为白色。 代码: // 设置曲线的样式Series series chart1.Series[1];// 画样条曲线(Spline) 散点图Pointseries.ChartType SeriesChartType.Spline;// 线宽2个像素series.BorderWidth 2;// 线的颜色&…

K8S Helm

简述 Helm 是 Kubernetes 的开源包管理器。它提供了提供、共享和使用为 Kubernetes 构建的软件的能力。它允许开发者定义、‌打包、‌发布和管理Kubernetes应用资源,‌类似于Linux下的apt或yum包管理器。‌Helm3的架构主要包括Helm客户端、‌Chart仓库以及Kubernet…

程序员窃喜!卡了大模型脖子的Json输出,OpenAI终于做到了100%正确

OpenAI上次提到JSON模式的概念,还是在去年的DevDay上。那是ChatGPT第一次拥抱JSON模式。 但这个功能可以说是饱受诟病。 经常遇到模型不遵循指令,不按照你想要的格式输出,即使在 prompt 中明确说了要按照指定格式(比如Json、XML&…

【Java】字符/字符串转整数 常用的三个方法

前言: 做Oj题时,偶尔需要用到,久了不用,用到就得查一下,遂总结一篇用法,加深记忆。 目录 方法1:使用字符的ASCII值(字符) 方法2:使用Character.getNumeri…

【GCC】结合GPT4 延迟梯度学习1:公式推导及理论分析

大神的分析 本文主要借鉴。【TWCC 】基于gpt和python简化分析webrtc拥塞控制论文: Analysis and Design of the Google Congestion Contro for Web Real-time Communication (WebRTC)感觉应该学习好理论后再进行python 分析:【gcc】基于gpt和python的流程和延迟梯度分析另外:…

html+css+js前端作业qq音乐官网5个页面 带js

htmlcssjs前端作业qq音乐官网5个页面 带js 有轮播图,tab切换等多种效果 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编…

Flink 实时数仓(九)【DWS 层搭建(三)交易域汇总表创建】

前言 今天立秋,任务是完成 DWS 剩余的表,不知道今天能不能做完,欲速则不达,学不完就明天继续,尽量搞懂每一个需求; 1、交易域下单各窗口汇总表 任务:从 Kafka 订单明细主题读取数据&#xff0…

【Linux-WMware Tools安装失败“segmentation fault”解决方法】

VMware版本:17 Ubuntu版本: 22.04 安装常规办法,通过vmware安装Tool,安装显示报错:“segmentation fault”,查了下可能是tool和ubuntu版本不兼容导致的。解决办法:通过命令行逐次安装。 1、sudo apt insta…

PostgreSQL(二十五)PG_FDW的使用

目录 一、FDW的简介与特性 二、pg_fdw的部署与使用 1、编译postgres_fdw 2、添加postgres_fdw 3、创建FDW服务器 ​4、授权并创建用户映射 5、客户端创建FDW测试表 6、访问外部表 ​7、可能出现的问题 三、FDW的执行原理 1、PG-PG访问过程描述 2、PG-PG访问过程查看…

一部分优化算法

一、优化问题 1、优化目标 (1)优化和深度学习的目标是根本不同的。前者主要关注的是最小化目标,后者则关注在给定有限数据量的情况下寻找合适的模型。 (2)优化算法的目标函数通常是基于训练数据集的损失函数&#x…

springboot 定义类导入爆红,@Autowried自动注入失败

springboot 定义类导入爆红,Autowried自动注入失败 根据提供的异常信息,分析如下: 异常起因:UnsatisfiedDependencyException 表示在创建名为 ‘a1001Service’ 的 bean 时存在依赖问题,具体是在字段 ‘a1001Mapper’ …

算法日记day 32(贪心之划分字母区间|合并区间|单调递增的数字|监控二叉树)

一、划分字母区间 题目: 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每…

nginx 405错误是什么意思

405错误:方法不被允许 当Web服务器收到一个它不支持的HTTP请求方法时,就会返回405错误。 原因 405错误通常是由于客户端发出了不兼容或不支持的HTTP请求方法。例如,客户端可能请求一个只能通过GET方法访问的资源,但使用了POST方…