🚀 NVIDIA Streaming Citrinet 1024 (en-US)
本模型用于将语音转录为包含空格和撇号的小写英文字符,它在数千小时的英语语音数据上进行了训练。该模型是Streaming Citrinet的非自回归“大型”变体,拥有约1.4亿个参数。完整的架构细节请参考模型架构部分和NeMo文档。此外,它还与NVIDIA Riva兼容,可用于生产级服务器部署。
|
|
|
|
|
🚀 快速开始
本模型可在NeMo工具包[3]中使用,可作为预训练检查点进行推理或在其他数据集上进行微调。
要训练、微调或使用该模型,你需要安装NVIDIA NeMo。建议在安装最新版本的PyTorch之后再安装它。
pip install nemo_toolkit['all']
✨ 主要特性
- 可将语音转录为小写英文,包含空格和撇号。
- 基于Streaming Citrinet的非自回归“大型”变体,约1.4亿参数。
- 与NVIDIA Riva兼容,适用于生产级服务器部署。
📦 安装指南
要使用该模型,你需要安装NVIDIA NeMo。建议在安装最新版本的PyTorch之后进行安装:
pip install nemo_toolkit['all']
💻 使用示例
基础用法
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained("nvidia/stt_en_citrinet_1024_gamma_0_25")
高级用法
转录单个音频文件
首先,获取一个音频样本:
wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav
然后进行转录:
output = asr_model.transcribe(['2086-149220-0033.wav'])
print(output[0].text)
转录多个音频文件
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_en_citrinet_1024_gamma_0_25"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
输入
本模型接受16000 kHz单声道音频(wav文件)作为输入。
输出
本模型为给定的音频样本提供转录后的语音字符串。
📚 详细文档
模型架构
Streaming Citrinet-1024模型是用于自动语音识别的Citrinet模型[1]的非自回归、流式变体,它使用CTC损失/解码而不是Transducer。你可以在Citrinet Model中找到关于此模型的更多信息。
训练
使用NeMo工具包[3]对模型进行了数百个epoch的训练。该模型使用此示例脚本和此基础配置进行训练。
此模型的分词器使用训练集的文本转录,通过此脚本构建。
数据集
此集合中的所有模型都在一个复合数据集(NeMo ASRSET)上进行训练,该数据集包含数千小时的英语语音:
- Librispeech 960小时英语语音
- Fisher语料库
- Switchboard-1数据集
- WSJ-0和WSJ-1
- 新加坡国家语料库(第1部分,第6部分)
注意:较旧版本的模型可能在较小的数据集上进行训练。
性能
此集合中可用模型的列表如下表所示。ASR模型的性能以单词错误率(WER%)和贪心解码的方式报告。
版本 |
分词器 |
词汇表大小 |
LS test-other |
LS test-clean |
WSJ Eval92 |
WSJ Dev93 |
NSC Part 1 |
训练数据集 |
1.0.0 |
SentencePiece Unigram |
1024 |
7.6 |
3.4 |
2.5 |
4.0 |
6.2 |
NeMo ASRSET 1.0 |
在使用NVIDIA Riva进行部署时,你可以将此模型与外部语言模型结合使用,以进一步提高WER。最新模型在不同语言建模技术下的WER(%)如下表所示。
局限性
由于该模型是在公开可用的语音数据集上训练的,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。该模型对于带有口音的语音也可能表现较差。
部署
为了获得最佳的实时准确性、低延迟和高吞吐量,可使用NVIDIA Riva部署该模型。NVIDIA Riva是一个加速语音AI SDK,可在本地、所有云、多云、混合云、边缘和嵌入式设备上部署。
此外,Riva还提供:
- 针对最常见语言的世界级开箱即用准确性,模型检查点在专有数据上进行训练,使用了数十万小时的GPU计算资源。
- 一流的准确性,支持运行时单词增强(例如品牌和产品名称),并可自定义声学模型、语言模型和逆文本归一化。
- 流式语音识别、Kubernetes兼容的扩展和企业级支持。
查看Riva实时演示。
🔧 技术细节
本模型是Streaming Citrinet的非自回归“大型”变体,使用CTC损失/解码进行自动语音识别。训练使用了NeMo工具包,在复合数据集NeMo ASRSET上进行了数百个epoch的训练。
📄 许可证
本模型使用CC BY 4.0许可证。
参考文献
[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