asp怎么新建网站,济南市建设工程招标投标协会网站,提高百度快速排名,自己做的网站怎么样合法摘要
最近#xff0c;我们提供了 WeNet [1]#xff0c;这是一个面向生产#xff08;工业生产环境需求#xff09;的端到端语音识别工具包#xff0c;在单个模型中#xff0c;它引入了统一的两次two-pass (U2) 框架和内置运行时#xff08;built-in runtime#xff09;…摘要
最近我们提供了 WeNet [1]这是一个面向生产工业生产环境需求的端到端语音识别工具包在单个模型中它引入了统一的两次two-pass (U2) 框架和内置运行时built-in runtime来处理流式和非流式解码模式。
为了进一步提高 ASR 性能并满足各种生产需求在本文中我们介绍了 WeNet 2.0 的四个重要更新。 我们提出了 U2这是一个具有双向注意力解码器的统一双通道框架two-pass framework with bidirectional attention decoders其中包括从右到左注意力解码器(注意是right-to-left方向)的未来上下文信息以提高共享编码器的表示能力representative ability和重新评分阶段rescoring stage的性能。 我们在 WeNet 2.0 中引入了基于 n-gram 的语言模型和基于 WFST 的解码器促进了富文本数据rich text data在生产场景中的使用。 【这个好可以说上一代的代表kaldi的重要的功能目前在WeNet2.0中进行很好的idea和方法论的继承和实现】 我们设计了一个统一的上下文偏置框架unified contextual biasing framework该框架利用用户特定的上下文例如联系人列表-contact lists为生产提供快速适应能力并在“有 LM” 和“无 LM”两大场景中提高 ASR 准确性。 我们设计了一个统一的 IO 来支持大规模数据进行有效的模型训练。
综上所述全新的 WeNet 2.0 在各种语料库上比原来的 WeNet 实现了高达 10% 的相对识别性能提升并提供了几个面向生产的重要特性。
索引词U2语言模型上下文偏置contextual biasingUIO
论文地址https://arxiv.org/pdf/2203.15455.pdf
github地址https://github.com/wenet-e2e/wenet
1 简介
端到端 (end-to-end, E2E) 方法例如连接主义时间分类 (connectionist temporal classification - CTC) [2, 3]、循环神经网络转换器 (RNN-T) [4, 5, 6, 7] 和基于注意力的编码器-解码器 ( attention-based encoder-decoder: AED) [8, 9, 10, 11, 12]在过去几年中引起了对自动语音识别 (ASR) 的极大兴趣。
最近的工作 [13, 14, 15] 表明 E2E 系统不仅极大地简化了语音识别管道而且在准确性上也超过了传统的混合 ASR 系统hybrid ASR systems。
考虑到 E2E 模型的优势 [16]将新兴的 E2E ASR 框架部署到具有稳定和高效特性的实际生产中变得很有必要。然而几乎所有著名的 E2E 语音识别工具包例如 ESPnet [17] 和 SpeechBrain [18]都是面向研究而非面向生产的。【鉴于ESPnet是几位日本人研究者开发的所以对于日文的支持有一定的优势。一些日本的企业也仍然在使用ESPnet来训练他们的ASR模型。】
在 [1] 中我们提出了一个生产优先和生产就绪production first and production ready PFPR这个词好的 E2E 语音识别工具包 WeNet1它专注于解决实际生产中基于 Transformer [19] 或 Conformer [20] 的 E2E 模型的棘手问题。
具体来说WeNet 采用联合 CTC/AED 例如主要是指综合ctc loss和attention loss结构作为基本模型结构。然后提出了一个统一的两通two-passU2框架来解决流式传输问题其中在训练过程中应用动态块掩码策略dynamic chunk masking将流式和非流式模式统一在一个统一的神经模型中并提供“构建运行时”built-in runtime开发人员可以在其中运行 x86 和 android E2E 系统以进行开箱即用的语音识别。
WeNet 极大地减少了在实际应用中部署 E2E 模型的工作量因此被研究人员和开发人员广泛采用用于在实际生产中实现语音识别。
在本文中我们介绍了 WeNet 2.0它介绍了 WeNet 中最新的发展和更新的解决方案用于面向生产的语音识别。 WeNet 2.0 的主要更新如下。
U2我们将原来的U2框架升级为U2嗯估计下次再升级就是U2#了同时利用标注序列的从左到右和从右到左的双向上下文信息在训练阶段学习更丰富的上下文信息结合前向和反向预测以在解码阶段获得更准确的结果。实验表明与原始 U2 框架相比U2 实现了高达 10% 的相对改进细节代码学习后续安排上TODO。生产产品-production语言模型解决方案我们支持一个可选的 n-gram LM在流式 CTC 解码阶段它将与基于加权有限状态自动机 (WFST) [21] 的解码图中的 E2E 建模单元组成。
n-gram LM 可以在丰富的生产积累文本数据上快速训练这是面向生产的重要特征。实验表明n-gram 语言模型可以提供高达 8% 的相对性能提升这也凸显了基于更大规模文本语料训练出来的语言模型的有效性。
上下文偏置contextual biasing我们设计了一个统一的上下文偏置框架它提供了在流解码阶段利用或不使用 LM 的用户特定上下文信息的机会。利用用户特定的上下文信息例如联系人列表、特定对话状态、呈现给用户的选项、对话主题、位置等在提高 ASR 准确性和在语音生成中提供快速适应能力方面发挥着重要作用。【这个对于很多场景有用例如长时间的电话会议的会议内容转录长时间的视频的语音理解等等】实验表明我们的上下文偏差解决方案可以为有 LM 和没有 LM 的情况带来显着的改进。统一IOUIO我们设计了一个统一的IO系统来支持大规模数据集进行有效的模型训练。 UIO 系统为不同的存储即本地磁盘或云和不同规模的数据集即小型或大型数据集提供统一的接口。
对于小型数据集UIO 保持样本级随机访问能力。而对于大型数据集UIO 将数据样本聚合到分片shard有关详细信息请参阅图 4并提供分片级随机访问能力。
多亏有了 UIOWeNet 2.0 可以弹性地支持几小时到数百万小时数据的训练。
总而言之我们全新的 WeNet 2.0 提供了几个重要的面向生产的功能与原始 WeNet 相比它实现了显著的 ASR 改进并使其自身成为更高效的 E2E 语音识别工具包。
2 WeNet 2.0
在本节中我们将分别详细描述面向生产的关键更新U2 框架、生产语言模型解决方案、上下文偏置和统一 IO。
2.1 U2
U2 是一个统一的两通two-pass联合 CTC/AED 框架带有双向注意力解码器为统一流式和非流式模式提供了理想的解决方案。 U2框架左边一路是ctc loss右边是attention decoder/loss而且右边又包括了从左到右从右到左的两个方向
如图1所示U2由四部分组成。
1) 对声学特征信息进行建模的共享编码器shared encoder。
共享编码器由多个 Transformer [19] 或 Conformer [20] 层组成它们只考虑有限的右侧上下文limited right contexts以保持平衡的延迟balanced latency。
2) 一个 CTC 解码器它对声学特征acoustic features和token单元token units之间的帧级对齐信息frame-level alignment information进行建模。
CTC 解码器由一个线性层组成它将共享编码器输出转换为 CTC 激活。
3一个从左到右的注意力解码器L2R它对从左到右的有序标记序列进行建模以表示过去的上下文信息。
4一个从右到左的注意力解码器R2L它对从右到左的反向标记序列进行建模以表示未来的上下文信息。
L2R 和 R2L 注意力解码器由多个 Transformer 解码器层组成。
在解码阶段CTC 解码器在第一遍以流模式运行L2R 和 R2L 注意力解码器在非流模式下重新评分以提高第二遍的性能。
与 U2 [1] 相比我们增加了一个额外的从右到左注意力解码器来增强我们模型的上下文建模能力使得上下文信息不仅来自过去从左到右解码器而且来自未来从右到左的解码器。
这提高了共享编码器的代表能力、整个系统的泛化能力以及重新评分阶段的性能。
组合 CTC 和 AED 损失Losses用于训练 U2 与U2类似采用动态块掩码策略dynamic chunk masking strategy来统一流式streaming和非流式non-streaming模式。
在训练阶段我们首先从均匀分布
C ∼ U(1, max batch length T)
中采样一个随机块大小 C。
然后输入被分成几个具有所选块大小的块。
最后当前块在训练中分别对自身和 L2R/R2L 注意力解码器中的前/后块进行双向块级注意注意力的计算。 在解码阶段从第一遍 CTC 解码器获得的 n-best 结果由 L2R 和 R2L 注意力解码器重新评分其相应的声学信息由共享编码器生成。
根据经验更大的块大小会导致更好的结果和更高的延迟。
由于采用了动态策略U2 学会了使用任意块大小进行预测从而可以通过“在解码中调整块大小”来简化准确性和延迟的平衡。 2.2.语言模型
为了促进富文本数据在生产场景中的使用我们在 WeNet 2.0 中提供了统一的 LM 集成框架如图 2 所示。 通过 n-best 结果。
其一当没有提供 LM 时应用 CTC 前缀波束搜索CTC prefix beam search来获得 n 个最佳候选。
其二当提供了 LM 时WeNet 2.0 将 n-gram LM (G)、词典 (L) 和端到端建模 CTC 拓扑 (topology-T) 编译成基于 WFST 的解码图 (TLG)
TLG T ◦ min(det(L ◦ G)), (3)
然后应用 CTC WFST 波束搜索来获得 n 个最佳候选。
最后通过 Attenion Rescoring 模块对 n 个最佳候选者进行重新评分以找到最佳候选者。
我们重用 Kaldi[22] 中的算法和代码进行解码在 WeNet 2.0 框架中表示为 CTC WFST 波束搜索。
为了加快解码速度采用了空白帧跳过blank frame skipping[23]技术。
2.3.上下文偏置
利用用户特定user-specific的上下文信息例如联系人列表、驾驶员导航在语音生成中起着至关重要的作用它始终显著提高准确性并提供快速适应能力。
在 [24, 25, 26] 中研究了传统和 E2E 系统的上下文偏置contextual biasing技术。
在 WeNet 2.0 中为了在流解码阶段利用 LM 和无 LM 情况下的用户特定上下文信息受 [25] 的启发我们在已知一组偏置短语时动态构建“上下文相关的 WFST 解码图”。
we construct a contextual WFST graph on the fly when a set of biasing phrases are known in advance.
首先根据 LM-free 情况下的 E2E 建模单元E2E modeling units或 with-LM 情况下的词汇词vocabulary words将偏置短语拆分为偏置单元biasing units。
然后“上下文相关 WFST 图”按如下方式动态构建
1每个具有提升分数boosted score的偏置单元biasing unit按顺序放置在相应的弧上以生成可接受的链acceptable chain。
(2) 对于可接受链的每个中间状态intermediate state添加一个具有负累积提升分数negative accumulated boosted score的特殊失败弧(special failure arc)。
当仅匹配部分偏置单元而不是整个短语时失败弧failure arc用于移动提升的分数move the boosted scores。 在上面的图 3 中分别显示了
LM-free 情况下的 charE2E 建模单元级【单个文字】上下文图和
with-LM 情况下的单词级【不忘初心】上下文图。
最后在流式streaming解码阶段当波束搜索结果通过“上下文相关的 WFST 图”与偏置单元匹配时立即添加一个 boosted score如 其中 P_C (y) 是偏置分数λ 是一个可调超参数用于控制上下文 LM 对整体模型分数的影响程度。
特别是当一些有偏见的短语共享相同的前缀时我们会进行贪婪匹配以简化实现。 2.4. UIO
通常生产规模的语音数据集包含数万小时的标记语音其中始终包含大量小文件。
海量的小文件会导致以下问题
• 内存不足OOM我们必须保留所有小文件的索引信息这对于大型数据集来说非常消耗内存。
• 训练速度慢随机访问海量小文件时读取数据的时间非常长成为训练的瓶颈。
针对上述大规模生产数据集的问题同时保持小数据集的高效率我们设计了一个统一的IO系统为不同的存储即本地磁盘或云和不同的规模提供统一的接口数据集即小型或大型数据集。 整个框架如图 4 所示。
对于大型数据集受 TFReord (Tensorflow) [27] 和 AIStore [28] 的启发我们将每个批处理的较小样本例如 1000 个样本及其相关元数据信息打包到相应的更大分片中这是由 GNU tar 完成的它是一种开源、开放格式、无处不在且得到广泛支持的存档工具。
Tar 文件显着节省内存并有效克服 OOM 问题。在训练阶段在内存中进行on-the-fly在线动态解压顺序读取同一个压缩分片中的数据解决了随机数据访问的耗时问题加快了训练过程。
同时可以随机读取不同的分片保证数据的全局随机性。对于小数据集我们也可以直接加载训练样本。特别是在大数据集使用分片时我们支持从本地磁盘和分布式存储例如 S3、OSS、HDFS 等加载分片。与TFRecord类似设计了即时处理数据的链式操作使统一IO可扩展且易于调试。
3 实验
在本节中我们将描述我们的实验设置、测试集并分析实验结果。 WeNet recipes 中提供了大多数实验设置。
实验在以下全部或部分语料库上进行
AISHELL-1 [29]、AISHELL-2 [30]、LibriSpeech [31]、GigaSpeech [32] 和最近发布的 WenetSpeech [33]。
这五个语料库包括不同的语言英语和普通话、录制环境干净和嘈杂和大小100 - 10000 小时。
3.1 U2
为了评估我们的 U2 模型的有效性我们对上面列出的所有 5 个 ASR 语料库进行了实验。对于大多数实验具有 25ms 窗口和 10ms 偏移的 80 维 log Mel 滤波器组 (FBANK) 用作声学特征。
SpecAugment [34] 即时应用于数据增强。
在编码器的前面使用了两个内核大小为 3*3 和步幅为 2 的卷积子采样层。
我们的编码器中使用 12 个conformer layers。
为了保持 U2/U2 的可比参数我们为 U2 使用 6 个transformer 解码器层为 U2 使用 3 个从左到右和 3 个从右到左的解码器层。
此外我们通过模型平均model averaging获得最终模型。
在 AISHELL-1 和 AISHELL-2 中注意力层使用注意力维度 256、前馈 2048 和 4-head attention。
在 LibriSpeech、GigaSpeech 和 WenetSpeech 中注意力层使用注意力维度 512、前馈 2048 和 8-head attention。
五个语料库的卷积模块的内核大小分别为 8/8/31/31/15。累积梯度用于稳定训练accumulated gradient例如如果batch16累计梯度2那么其实是32个样本更新一次梯度的adam等优化搜索。 在表 1 中我们报告了每个语料库的
字符错误率 (CER)、单词错误率 (WER) 或混合错误率 (MER)。
它表明 U2 在大多数语料库上都优于 U2并且相对于 U2 实现了高达 10% 的相对改进。
从结果来看我们认为 U2 在各种类型和大小的 ASR 语料库中始终表现出优异的性能。
3.2. N-gram 语言模型
语言模型解决方案在 AISHELL-1、AISHELL-2 和 LibriSpeech 上对第 3.1 节中列出的模型进行评估。对于 AISHELL-1 和 AISHELL-2使用在其自己的训练语料库上训练的 tri-gram。
对于 LibriSpeech使用了官方预训练的4-gram大语言模型fglarge。
为了加快解码速度当一帧“空白”符号的概率大于 0.98 时将跳过该帧。 表 2 展示了三个语料库在有 LM 和无 LM 场景中的比较结果。 with-LM 解决方案在 AISHELL-1 上显示 5% 的增益在 AISHELL-2 上的可比结果在 LibriSpeech 上测试清洁的可比结果以及在 LibriSpeech 上的其他测试中的卓越改进 (8.42%)。
总之我们的生产 LM 解决方案在三个语料库上显示出一致的增益这说明 n-gram 语言模型在集成到 E2E 语音识别系统时效果很好。
得益于该方案生产系统production system可以享受到丰富的生产积累文本数据。
3.3.上下文偏置
我们评估接触场景中的上下文偏置我们设计了两个从 AISHELL-2 测试集中选择的测试集。
• test_p带有相关上下文的正测试集(positive test set)。我们选择了 107 个带有人名的话语所有的人名在解码时都作为上下文偏置短语附加。
• test_n在正测试集中没有任何上下文偏置短语即名称的负测试集negative test set。
我们随机选择 107 个符合条件的话语作为负测试集。我们在有和没有 LM 的 AISHELL-1 U2 模型上进行了测试。我们表明可以通过切换提升分数来控制上下文偏差的强度。在我们的实验中提升分数从 0 到 10 不等其中 0 表示未应用上下文偏差。 如表 3 所示我们的解决方案降低了正测试集的错误率并且更大的提升分数通常会带来更好的改进。
此外当设置适当的提升分数时我们可以提高正测试集的性能同时避免负测试集的性能下降。
3.4. UIO
我们评估了 UIO 在 AISHELL-1 [29] 和 WenetSpeech [33] 上的性能包括准确性、可扩展性和训练速度。
具体来说我们在一台机器上为 AISHELL-1 使用 8 个 GPU在三台机器上为 WenetSpeech 使用 24 个 GPU。 如表 4 所示UIO 在 AISHELL-1 上的 raw 和 shard 模式下显示出接近的准确性而 shard 模式在训练速度方面得到了大约 9.27% 的加速。
对于 WenetSpeech由于只使用 raw 模式进行训练太慢所以没有显示训练速度。我们采用 ESPnet 的结果标有†作为我们的基线它与我们的模型具有相同的配置。
通过分片模式在 WenetSpeech 上训练的模型的结果与 ESPnet 相当这进一步说明了 UIO 的有效性。
4 结论和未来工作
在本文中我们提出了更具生产力的 E2E 语音识别工具包 WeNet 2.0它引入了几个重要的面向生产的特性并实现了显著的 ASR 性能改进。
我们正在开发 WeNet 3.0主要专注于无监督自学习、设备端模型探索和优化以及其他生产工作。