英文

NVIDIA Citrinet CTC 256 Librispeech (en-US)

| | | | |

该模型以小写英文字母、空格和撇号的形式转录语音。这是Citrinet-CTC模型的“超小”版本(约1000万参数)。详情请参见 NeMo documentation 。该模型还与NVIDIA Riva兼容,可用于生产级服务器部署。

NVIDIA NeMo:训练

若要训练、微调或使用该模型,您需要安装 NVIDIA NeMo 。我们建议您在安装最新版本的PyTorch之后再安装NeMo。

pip install nemo_toolkit['all']

如何使用此模型

该模型可在NeMo工具包[3]中使用,并可用作预训练的检查点进行推理或在其他数据集上进行微调。

自动实例化模型

import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained("nvidia/stt_en_citrinet_256_ls")

使用Python进行转录

首先,让我们获取一个示例

wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav

然后只需执行:

asr_model.transcribe(['2086-149220-0033.wav'])

转录多个音频文件

python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py 
 pretrained_name="nvidia/stt_en_citrinet_256_ls" 
 audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"

输入

该模型接受16000 KHz单声道音频(wav文件)作为输入。

输出

该模型为给定音频样本提供转录的音频。

模型架构

Citrinet-CTC模型是Citrinet模型[1]的自回归变种,用于自动语音识别,它使用CTC损失/解码而不是转导损失。您可以在此处找到有关该模型详细信息: Citrinet Model

训练

NeMo工具包[3]用于对模型进行数百轮的训练。这些模型是使用此 example script 和此 base config 进行训练的(注意:将model.model_defaults.filters更改为与模型大小匹配)。

这些模型的分词器是使用训练集的文本转录本进行构建的,使用了 script

数据集

该集合中的所有模型都是在Librispeech数据集上进行训练的:

  • Librispeech提供960小时的英语语音

性能

此集合中可用模型的列表显示在下表中。ASR模型的性能以贪婪解码的词错误率(WER%)表示。

Version Tokenizer Vocabulary Size LS test-other LS test-clean
1.0.0 SentencePiece Unigram [2] 256 9.8 3.8

限制

由于该模型是在公开可用的语音数据集上进行训练的,因此该模型对于包含技术术语或模型未经过训练的方言的语音可能性能下降。该模型在口音语音上的表现也可能较差。

NVIDIA Riva部署

为了获得最佳的实时准确性、延迟和吞吐量,使用加速的语音AI SDK NVIDIA Riva 部署模型,该SDK可在本地、所有云端、多云端、混合部署、边缘和嵌入式系统上部署。此外,Riva还提供:

  • 出色的开箱即用的精确度,适用于最常用的语言,并使用了成千上万的GPU计算小时训练的模型检查点
  • 最佳的准确度,可运行时进行词提升(例如品牌和产品名称),以及自定义声学模型、语言模型和逆向文本规范化
  • 流式语音识别、兼容Kubernetes的扩展能力和企业级支持

请查看 Riva live demo

参考资料

[1] Citrinet: Closing the Gap between Non-Autoregressive and Autoregressive End-to-End Models for Automatic Speech Recognition [2] Google Sentencepiece Tokenizer [3] NVIDIA NeMo Toolkit

许可证

使用该模型的许可受 CC-BY-4.0 许可证的约束。下载公共和发布版本的模型即表示您接受 CC-BY-4.0 许可证的条款和条件。

.hf-sanitized.hf-sanitized-yNRR8SRSTwP0BALlIIY6h img {display: inline;}