重要提示
您正在查看 NeMo 2.0 文档。此版本对 API 和新库 NeMo Run 进行了重大更改。我们目前正在将 NeMo 1.0 中的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档。
模型#
本节简要概述 NeMo 的 ASR 集合当前支持的模型。
这些模型中的每一个都可以与示例 ASR 脚本(位于 <NeMo_git_root>/examples/asr
目录中)一起使用,方法是在使用的配置文件中指定模型架构。每个模型的配置文件的示例可以在 <NeMo_git_root>/examples/asr/conf
目录中找到。
有关配置文件以及应如何构建它们的更多信息,请参阅 NeMo ASR 配置文件 部分。
所有这些模型的预训练检查点以及如何加载它们的说明,都可以在 检查点 部分找到。您可以将可用的检查点用于立即推理,或在您自己的数据集上微调它们。检查点部分还包含可用 ASR 模型的基准测试结果。
聚光灯模型#
Canary#
Canary-1B 是 NVIDIA NeMo 最新的 ASR 模型。在发布时,它位于 HuggingFace OpenASR 排行榜的榜首。
您可以下载检查点或在这个 HuggingFace Space 中试用 Canary 的实际效果。
Canary-1B 是一个编码器-解码器模型,具有 FastConformer 编码器 和 Transformer 解码器 [ASR-MODELS8]。
它是一个多语言、多任务模型,支持 4 种语言(英语、德语、法语、西班牙语)的自动语音转文本识别 (ASR),以及英语与另外 3 种支持语言之间的翻译。
Parakeet#
Parakeet 是一系列 ASR 模型的名称,这些模型具有 FastConformer 编码器 和 CTC、RNN-T 或 TDT 解码器。
模型检查点
HuggingFace Spaces 在您的浏览器中试用 Parakeet 模型
Parakeet-RNNT-1.1B space
Parakeet-TDT-1.1B space
Conformer#
Conformer-CTC#
Conformer-CTC 是 Conformer 模型的基于 CTC 的变体,在 [ASR-MODELS1] 中介绍。 Conformer-CTC 具有与原始 Conformer 类似的编码器,但使用 CTC 损失和解码而不是 RNNT/Transducer 损失,这使其成为非自回归模型。 我们还删除 LSTM 解码器,而是在编码器顶部使用线性解码器。 该模型结合了自注意力机制和卷积模块,以实现两种方法的最佳效果,自注意力层可以学习全局交互,而卷积有效地捕获局部相关性。 自注意力模块支持带有绝对位置编码的常规自注意力机制,以及带有相对位置编码的 Transformer-XL 的自注意力机制。
以下是 Conformer-CTC 编码器的总体架构
该模型支持子词级别和字符级别的编码。 您可以在 Conformer-CTC 配置文档中找到有关 Conformer-CTC 模型的配置文件的更多详细信息。 带有子词编码的变体是基于 BPE 的模型,可以使用 EncDecCTCModelBPE
类实例化,而基于字符的变体基于 EncDecCTCModel
。
您可以在 <NeMo_git_root>/examples/asr/conf/conformer/conformer_ctc_char.yaml
找到带有基于字符的编码的 Conformer-CTC 模型的示例配置文件,在 <NeMo_git_root>/examples/asr/conf/conformer/conformer_ctc_bpe.yaml
找到带有子词编码的示例配置文件。
Conformer-Transducer#
Conformer-Transducer 是在 [ASR-MODELS1] 中介绍的 Conformer 模型,并使用 RNNT/Transducer 损失/解码器。 它具有与 Conformer-CTC 相同的编码器,但利用 RNNT/Transducer 损失/解码器,这使其成为自回归模型。
Conformer-Transducer 模型的大部分配置文件与 Conformer-CTC 类似,除了与解码器和损失相关的部分:解码器、损失、联合、解码。 您可以查看我们的 教程页面,了解有关 Transducer 模型的更多信息,以熟悉它们的配置:Transducer 入门 和 使用 Transducer 的 ASR 您可以在 Conformer-CTC 配置文档中找到有关 Conformer-Transducer 模型的配置文件的更多详细信息。
该模型支持子词级别和字符级别的编码。 带有子词编码的变体是基于 BPE 的模型,可以使用 EncDecRNNTBPEModel
类实例化,而基于字符的变体基于 EncDecRNNTModel
。
您可以在 <NeMo_git_root>/examples/asr/conf/conformer/conformer_transducer_char.yaml
找到带有基于字符的编码的 Conformer-Transducer 模型的示例配置文件,在 <NeMo_git_root>/examples/asr/conf/conformer/conformer_transducer_bpe.yaml
找到带有子词编码的示例配置文件。
Conformer-HAT#
Conformer HAT(混合自回归 Transducer)模型(不要与 Hybrid-Transducer-CTC 混淆)是基于先前 工作的 Conformer-Transducer 模型的修改版本。 主要思想是分离标签和空白分数预测,这允许在解码期间估计内部 LM 概率。 当外部 LM 可用于推理时,可以从 HAT 模型预测中减去内部 LM,以提高外部 LM 效率。 这在仅文本适应新领域的情况下可能很有用。
与标准 Conformer-Transducer 模型 (RNNT) 的唯一区别在于,联合模块使用了 “HATJiont” 类(而不是 “RNNTJoint”)。 所有 HAT 逻辑都在 “HATJiont” 类中实现。
您可以在 <NeMo_git_root>/examples/asr/conf/conformer/hat/conformer_hat_char.yaml
找到带有基于字符的编码的 Conformer-HAT 模型的示例配置文件,在 <NeMo_git_root>/examples/asr/conf/conformer/hat/conformer_hat_bpe.yaml
找到带有子词编码的示例配置文件。
默认情况下,HAT 模型的解码工作方式与 Conformer-Transducer 相同。 在外部 ngram LM 融合的情况下,您可以使用 <NeMo_git_root>/scripts/asr_language_modeling/ngram_lm/eval_beamsearch_ngram_transducer.py
。 要启用 HAT 内部 LM 减法,请设置 hat_subtract_ilm=True
,并找到更合适的 beam_alpha
和 hat_ilm_weight
值,以获得最佳识别精度。
Fast-Conformer#
Fast Conformer (CTC 和 RNNT) 模型具有更快版本的 Conformer 编码器,并与它有以下不同之处
具有 256 个通道的 8 倍深度可分离卷积子采样
Conformer 块中减小的卷积核大小为 9
Fast Conformer 编码器比常规 Conformer 编码器快约 2.4 倍,而模型质量没有显着下降。 128 个子采样通道产生 2.7 倍的速度提升,但模型质量开始下降。 使用局部注意力机制,可以在音频 > 1 小时(256 个子采样通道)/ > 2 小时(128 个通道)的情况下进行推理。
Fast Conformer 模型使用 CosineAnnealing(而不是 Noam)作为调度器进行训练。
您可以在 <NeMo_git_root>/examples/asr/conf/fastconformer/fast-conformer_ctc_bpe.yaml
找到示例 CTC 配置文件,在 <NeMo_git_root>/examples/asr/conf/fastconformer/fast-conformer_transducer_bpe.yaml
找到 transducer 配置文件。
请注意,这两个配置文件都是基于子词的 (BPE)。
您还可以使用 longformer 风格的注意力机制 (https://arxiv.org/abs/2004.05150) 训练这些模型,使用以下配置文件:<NeMo_git_root>/examples/asr/conf/fastconformer/fast-conformer-long_ctc_bpe.yaml
中的 CTC 配置文件和 <NeMo_git_root>/examples/asr/conf/fastconformer/fast-conformer-long_transducer_bpe.yaml
中的 transducer 配置文件。 这允许在更长的音频(使用 Fast Conformer 最长 70 分钟)上使用该模型。 请注意,即使使用完整上下文训练,Fast Conformer 检查点也可以与有限上下文注意力机制一起使用。 但是,如果您还想使用全局令牌,这有助于聚合来自有限上下文之外的信息,则需要进行训练。
您可以在 <NeMo_git_root>/examples/asr/conf/fastconformer/
下找到更多示例。
缓存感知流式 Conformer#
通过 缓存感知流式 Conformer 教程 notebook 试用实时 ASR。
缓冲流式传输使用重叠的块,使离线 ASR 模型可用于流式传输,并具有合理的准确性。 但是,由于重叠的块,这会导致大量的计算重复。 此外,离线模型和流式模型之间存在准确性差距,因为我们训练模型的方式与我们执行流式推理的方式之间存在不一致之处。 缓存感知流式 Conformer 模型解决了这些缺点。 这些流式 Conformer 使用有限的右侧上下文进行训练,从而可以匹配模型在训练和推理中的使用方式。 它们还使用缓存来存储中间激活,以避免计算中的任何重复。 Conformer-CTC 和 Conformer-Transducer 都支持缓存感知方法,并使该模型能够非常高效地用于流式传输。
Conformer 中的三类层可以访问右侧令牌:#. 深度可分离卷积 #. 自注意力机制 #. 下采样层中的卷积。
流式 Conformer 模型使用因果卷积或具有较低右侧上下文的卷积以及具有有限右侧上下文的自注意力机制来限制输入的有效右侧上下文。 使用此类限制训练的模型可以用于流式模式,并在离线模式下将整个音频提供给模型时,给出完全相同的输出和准确性。 这些模型可以使用缓存机制来存储和重用流式推理期间的激活,以尽可能避免计算中的任何重复。
我们支持以下三种右侧上下文建模技术
- 完全因果模型,零前瞻:令牌看不到任何未来的令牌。 卷积层都是因果的,并且为自注意力机制屏蔽了右侧令牌。它提供零延迟,但准确性有限。要训练这样的模型,您需要在配置中设置 model.encoder.att_context_size=[left_context,0] 和 model.encoder.conv_context_size=causal。
- 常规前瞻:卷积能够看到一些未来的帧,并且自注意力机制也看到相同数量的未来令牌。在这种方法中,不会缓存前瞻部分的激活,而是在下一个块中重新计算。 每个层中的右侧上下文应该是一个较小的数字,因为多个层会增加有效的上下文大小,然后增加前瞻大小和延迟。例如,对于具有 17 层、4 倍下采样和 10 毫秒窗口移位的模型,即使每个层中的 2 个右侧上下文也意味着 17*2*10*4=1360 毫秒的前瞻。 下采样后的每个步骤对应于 4*10=40 毫秒。
- 块感知前瞻:输入被分成相等的块。 卷积是完全因果的,而自注意力层能够看到其相应块中的所有令牌。例如,在块大小为 20 个令牌的模型中,每个块的第一个位置的令牌将看到所有接下来的 19 个令牌,而最后一个令牌将看到零个未来令牌。就计算而言,这种方法比常规前瞻更有效,因为大多数前瞻部分的激活将被缓存,并且计算中几乎没有重复。就准确性而言,这种方法在准确性方面给出的结果与常规前瞻相似甚至更好,因为每个层中的每个令牌平均可以访问更多令牌。 这就是为什么我们建议将此方法用于流式传输的原因。 因此,我们建议对缓存感知模型使用块感知。
注意
延迟基于以下假设:网络的正向时间为零,它只是估计从帧可用到通过模型所需的时间。
具有非零前瞻的方法可以通过牺牲延迟来显着提高准确性。 延迟可以通过左侧上下文大小来控制。 增加右侧上下文将有助于将准确性提高到一定程度,但会增加计算时间。
在所有模式下,左侧上下文都可以通过自注意力机制中可见的令牌数量和卷积的内核大小来控制。 例如,如果每个层中自注意力机制的左侧上下文设置为 20 个令牌,并且有 10 个 Conformer 层,则有效左侧上下文为 20*10=200 个令牌。 常规前瞻的自注意力机制的左侧上下文可以设置为任何数字,而块感知前瞻的左侧上下文应设置为右侧上下文的倍数。 对于卷积,如果我们使用 30 的左侧上下文,则将有 30*10=300 的有效左侧上下文。 卷积的左侧上下文取决于它们的内核大小,而自注意力层可以设置为任何数字。 自注意力机制的较高左侧上下文意味着更大的缓存和更多的自注意力机制计算。 约 6 秒的自注意力机制左侧上下文将给出与无限左侧上下文接近的结果。 对于具有 4 倍下采样和预处理器中 10 毫秒移位窗口的模型,每个令牌对应于 4*10=40 毫秒。
如果下采样使用步幅方法,则下采样中的所有卷积都将是完全因果的,并且看不到未来的令牌。
多重前瞻#
我们支持 cahce 感知模型的多重前瞻。 您可以为 att_context_size 指定上下文大小列表。 在训练期间,将随机使用不同的上下文大小,分布由 att_context_probs 指定。 例如,您可以通过为训练设置 model.encoder.att_context_size=[[70,13],[70,6],[70,1],[70,0]] 来启用多重前瞻。 列表中的第一个项目将是测试/验证/推理期间的默认值。 要在不同的前瞻之间切换,您可以使用方法 asr_model.encoder.set_default_att_context_size(att_context_size),或者在使用脚本 speech_transcribe.py 时,像下面这样设置 att_context_size
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py \
pretrained_name="stt_en_fastconformer_hybrid_large_streaming_multi" \
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>" \
att_context_size=[70,0]
您可以在 <NeMo_git_root>/examples/asr/conf/fastconformer/cache_aware_streaming/conformer_transducer_bpe_streaming.yaml
找到缓存感知流式 FastConformer 模型的示例配置文件(用于 Transducer 变体),在 <NeMo_git_root>/examples/asr/conf/conformer/cache_aware_streaming/conformer_ctc_bpe.yaml
找到缓存感知流式 FastConformer 模型的示例配置文件(用于 CTC 变体)。 建议使用 FastConformer,因为它们在训练和推理方面都比常规 Conformer 快 2 倍以上。 FastConformer 的混合版本可以在这里找到:<NeMo_git_root>/examples/asr/conf/conformer/hybrid_cache_aware_streaming/
常规 Conformer 的示例可以在 <NeMo_git_root>/examples/asr/conf/conformer/cache_aware_streaming/conformer_transducer_bpe_streaming.yaml
找到(用于 Transducer 变体),在 <NeMo_git_root>/examples/asr/conf/conformer/cache_aware_streaming/conformer_ctc_bpe.yaml
找到(用于 CTC 变体)。
要模拟缓存感知流式传输,您可以使用 <NeMo_git_root>/examples/asr/asr_cache_aware_streaming/speech_to_text_cache_aware_streaming_infer.py
中的脚本。 它可以为 ASR 模型模拟单流或多流模式(批量)下的流式传输。 此脚本可用于使用全上下文离线训练的模型,但除非块大小足够大(这将导致高延迟),否则准确性不会很高。 建议在此脚本中使用有限上下文以流式模式训练模型。 更多信息可以在脚本中找到。
请注意,默认情况下,缓存感知流式模型在导出时不支持缓存。 要包含缓存支持,应在导出之前调用 model.set_export_config({‘cache_support’ : ‘True’})。 或者,如果正在使用 <NeMo_git_root>/scripts/export.py
:python export.py cache_aware_conformer.nemo cache_aware_conformer.onnx –export-config cache_support=True
Hybrid-Transducer-CTC#
Hybrid RNNT-CTC 模型是一组具有 RNNT 和 CTC 解码器的模型。 训练统一模型将加速 CTC 模型的收敛,并使用户能够使用同时充当 CTC 和 RNNT 模型的单个模型。 此类别可以与任何 ASR 模型一起使用。 混合模型在编码器的顶部使用 CTC 和 RNNT 的两个解码器。 训练完成后的默认解码策略是 RNNT。 用户可以使用 asr_model.change_decoding_strategy(decoder_type='ctc' or 'rnnt')
更改默认解码。
带有子词编码的变体是基于 BPE 的模型,可以使用 EncDecHybridRNNTCTCBPEModel
类实例化,而基于字符的变体基于 EncDecHybridRNNTCTCModel
。
您可以使用 <NeMo_git_root>/examples/asr/asr_hybrid_transducer_ctc
下的示例脚本进行基于字符的编码和子词编码。 这些示例可用于训练任何混合 ASR 模型,例如 Conformer、Citrinet、QuartzNet 等。
您可以在 <NeMo_git_root>/examples/asr/conf/conformer/hybrid_transducer_ctc/conformer_hybrid_transducer_ctc_char.yaml
找到此类混合模型的 Conformer 变体的示例配置文件(带有基于字符的编码),在 <NeMo_git_root>/examples/asr/conf/conformer/hybrid_transducer_ctc/conformer_hybrid_transducer_ctc_bpe.yaml
找到此类混合模型的 Conformer 变体的示例配置文件(带有子词编码)。
FastConformer 混合变体的类似示例配置可以在这里找到:<NeMo_git_root>/examples/asr/conf/fastconformer/hybrid_transducer_ctc/
<NeMo_git_root>/examples/asr/conf/fastconformer/hybrid_cache_aware_streaming/
请注意,默认情况下,混合模型导出为 RNNT(编码器和解码器+联合部分)。 要导出为 CTC(单个编码器+解码器图),应在导出之前调用 model.set_export_config({‘decoder_type’ : ‘ctc’})。 或者,如果正在使用 <NeMo_git_root>/scripts/export.py
:python export.py hybrid_transducer.nemo hybrid_transducer.onnx –export-config decoder_type=ctc
混合 ASR-TTS 模型#
混合 ASR-TTS 模型 (ASRWithTTSModel
) 是 ASR 模型的透明包装器,带有冻结的预训练文本到频谱图模型。 该方法在论文 Text-only domain adaptation for end-to-end ASR using integrated text-to-mel-spectrogram generator 中进行了描述。 这允许使用纯文本数据进行训练和微调,并在必要时将其与音频-文本对混合。
该模型由三个模型组成
ASR 模型 (
EncDecCTCModelBPE
或EncDecRNNTBPEModel
)冻结的 TTS Mel 频谱图生成器(目前,仅支持 FastPitch 模型)
可选的冻结 Spectrogram Enhancer model 模型,用于减轻真实 Mel 频谱图和生成 Mel 频谱图之间的不匹配
有关详细信息,请参阅
基于置信度的集成#
基于置信度的集成是一种将多个模型组合成单个系统的简单方法,方法是仅保留最自信模型的输出。 下面是此类集成如何工作的示意图。
有关此模型的更多详细信息,请参阅 论文 或阅读我们的 教程。
NeMo 通过 nemo.collections.asr.models.confidence_ensemble.ConfidenceEnsembleModel 类支持基于置信度的集成模型。
创建和使用集成模型的典型工作流程如下:
运行 scripts/confidence_ensembles/build_ensemble.py 脚本,从现有模型创建集成模型。有关使用示例和所有支持功能的描述,请参阅脚本内的文档。
该脚本输出一个检查点,其中结合了集成模型中的所有模型。它可以直接用于转录语音,通过调用
.trascribe()
方法或使用 examples/asr/transcribe_speech.py。
请注意,集成模型在构建后无法修改(例如,它不支持微调),并且仅支持转录功能(例如,.forward()
未正确定义)。
Jasper#
Jasper(“Just Another Speech Recognizer”,又一个语音识别器) [ASR-MODELS7] 是一个深度时延神经网络 (TDNN),由 1D 卷积层块组成。Jasper 模型系列表示为 Jasper_[BxR]
,其中 B
是块的数量,R
是一个块内卷积子块的数量。每个子块包含一个 1-D 卷积、批归一化、ReLU 和 dropout。
Jasper 模型可以使用 EncDecCTCModel
类实例化。
QuartzNet#
QuartzNet [ASR-MODELS6] 是 Jasper [ASR-MODELS7] 模型的一个版本,它具有可分离卷积和更大的滤波器。它可以实现与 Jasper 相似的性能,但参数数量却少一个数量级。与 Jasper 类似,QuartzNet 模型系列表示为 QuartzNet_[BxR]
,其中 B
是块的数量,R
是一个块内卷积子块的数量。每个子块包含一个 1-D *可分离* 卷积、批归一化、ReLU 和 dropout。
QuartzNet 模型可以使用 EncDecCTCModel
类实例化。
Citrinet#
Citrinet 是 QuartzNet [ASR-MODELS6] 的一个版本,它扩展了 ContextNet [ASR-MODELS2],利用子词编码(通过 Word Piece 标记化)和 Squeeze-and-Excitation 机制 [ASR-MODELS4],在利用非自回归 CTC 基于解码方案进行高效推理的同时,获得高度准确的音频转录。
Citrinet 模型可以使用 EncDecCTCModelBPE
类实例化。
ContextNet#
ContextNet 是一个使用 Transducer/RNNT 损失/解码器的模型,在 [ASR-MODELS2] 中被介绍。它使用 Squeeze-and-Excitation 机制 [ASR-MODELS4] 来建模更大的上下文。与 Citrinet 不同,它具有自回归解码方案。
ContextNet 模型可以使用 EncDecRNNTBPEModel
类实例化,用于使用子词编码的模型,而 EncDecRNNTModel
类用于基于字符编码的模型。
您可以在 <NeMo_git_root>/examples/asr/conf/contextnet_rnnt/contextnet_rnnt_char.yaml
找到基于字符编码的 ContextNet 模型示例配置文件,在 <NeMo_git_root>/examples/asr/conf/contextnet_rnnt/contextnet_rnnt.yaml
找到基于子词编码的示例配置文件。
Squeezeformer-CTC#
Squeezeformer-CTC 是 Squeezeformer 模型的基于 CTC 的变体,在 [ASR-MODELS5] 中被介绍。Squeezeformer-CTC 具有与原始 Squeezeformer 类似的编码器,但使用 CTC 损失和解码而不是 RNNT/Transducer 损失,这使其成为非自回归模型。该架构的绝大部分与 Conformer 模型相似,因此请参考 Conformer-CTC。
该模型与 Conformer 的主要区别在于以下几点:
时间 U-Net 风格的时间缩减,有效地减少了内存消耗和执行的 FLOPs。
整个模型中统一的激活函数。
模块结构的简化,冗余层的移除。
以下是 Squeezeformer-CTC 编码器的总体架构:
该模型同时支持子词级别和字符级别的编码。您可以在 Squeezeformer-CTC 找到有关 Squeezeformer-CTC 模型配置文件的更多详细信息。使用子词编码的变体是基于 BPE 的模型,可以使用 EncDecCTCModelBPE
类实例化,而基于字符的变体则基于 EncDecCTCModel
。
您可以在 <NeMo_git_root>/examples/asr/conf/squeezeformer/squeezeformer_ctc_char.yaml
找到基于字符编码的 Squeezeformer-CTC 模型示例配置文件,在 <NeMo_git_root>/examples/asr/conf/squeezeformer/squeezeformer_ctc_bpe.yaml
找到基于子词编码的示例配置文件。
LSTM-Transducer#
LSTM-Transducer 是一个在编码器中使用 RNN(例如 LSTM)的模型。该模型的架构遵循 [ASR-MODELS3] 中的建议。它使用 RNNT/Transducer 损失/解码器。编码器由 RNN 层(默认为 LSTM)组成,具有较低的投影大小以提高效率。层归一化添加到层之间以稳定训练。它可以以单向或双向模式进行训练/使用。单向模式是完全因果的,可以轻松用于简单高效的流式传输。但是,此模型的准确性通常低于 Conformer 和 Citrinet 等其他模型。
该模型同时支持子词级别和字符级别的编码。您可以在 <NeMo_git_root>/examples/asr/conf/lstm/lstm_transducer_bpe.yaml
找到使用 wordpiece 编码的 RNNT 模型示例配置文件。您可以在 LSTM-Transducer 找到有关 RNNT 模型配置文件的更多详细信息。
LSTM-CTC#
LSTM-CTC 模型是 LSTM-Transducer 模型的 CTC 变体,它使用 CTC 损失/解码而不是 Transducer。您可以在 <NeMo_git_root>/examples/asr/conf/lstm/lstm_ctc_bpe.yaml
找到使用 wordpiece 编码的 LSTM-CTC 模型示例配置文件。
参考文献#
Anmol Gulati, James Qin, Chung-Cheng Chiu, Niki Parmar, Yu Zhang, Jiahui Yu, Wei Han, Shibo Wang, Zhengdong Zhang, Yonghui Wu, 以及其他人。Conformer:用于语音识别的卷积增强 Transformer。arXiv preprint arXiv:2005.08100, 2020。
Wei Han, Zhengdong Zhang, Yu Zhang, Jiahui Yu, Chung-Cheng Chiu, James Qin, Anmol Gulati, Ruoming Pang, 和 Yonghui Wu。Contextnet:通过全局上下文改进用于自动语音识别的卷积神经网络。arXiv:2005.03191, 2020。
Yanzhang He, Tara N Sainath, Rohit Prabhavalkar, Ian McGraw, Raziel Alvarez, Ding Zhao, David Rybach, Anjuli Kannan, Yonghui Wu, Ruoming Pang, 以及其他人。用于移动设备的流式端到端语音识别。在 ICASSP 2019-2019 IEEE 国际声学、语音和信号处理会议 (ICASSP), 6381–6385。IEEE, 2019。
Sehoon Kim, Amir Gholami, Albert Shaw, Nicholas Lee, Karttikeya Mangalam, Jitendra Malik, Michael W. Mahoney, 和 Kurt Keutzer。Squeezeformer:一种用于自动语音识别的高效 Transformer。2022。URL: https://arxiv.org/abs/2206.00888, doi:10.48550/ARXIV.2206.00888。
Samuel Kriman, Stanislav Beliaev, Boris Ginsburg, Jocelyn Huang, Oleksii Kuchaiev, Vitaly Lavrukhin, Ryan Leary, Jason Li, 和 Yang Zhang。Quartznet:具有 1d 时间通道可分离卷积的深度自动语音识别。arXiv preprint arXiv:1910.10261, 2019。
Jason Li, Vitaly Lavrukhin, Boris Ginsburg, Ryan Leary, Oleksii Kuchaiev, Jonathan M Cohen, Huyen Nguyen, 和 Ravi Teja Gadde。Jasper:端到端卷积神经声学模型。arXiv preprint arXiv:1904.03288, 2019。
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, 和 Illia Polosukhin。Attention is all you need。在 Advances in Neural Information Processing Systems, 6000–6010。2017。