🚀 NVIDIA Conformer-CTC Large (en-US)
本模型可将语音转录为包含空格和撇号的小写英文字母,它在数千小时的英语语音数据上进行了训练。它是Conformer的非自回归“大型”变体,约有1.2亿个参数。查看模型架构部分和NeMo文档,可了解完整的架构细节。此外,它还与NVIDIA Riva兼容,可用于生产级服务器部署。
|
|
|
|
|
🚀 快速开始
本模型可在NeMo工具包[3]中使用,可作为预训练检查点用于推理,或在其他数据集上进行微调。
若要训练、微调或使用该模型,你需要安装NVIDIA NeMo。建议在安装最新版本的PyTorch后再安装它。
pip install nemo_toolkit['all']
✨ 主要特性
- 可将语音转录为包含空格和撇号的小写英文字母。
- 基于Conformer的非自回归“大型”变体,约有1.2亿个参数。
- 与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_conformer_ctc_large")
使用Python进行转录
首先,获取一个样本:
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_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
输入
该模型接受16000 kHz单声道音频(wav文件)作为输入。
输出
该模型为给定的音频样本提供转录后的语音字符串。
📚 详细文档
模型架构
Conformer-CTC模型是用于自动语音识别的Conformer模型[1]的非自回归变体,它使用CTC损失/解码而不是Transducer。你可以在Conformer-CTC模型中找到该模型的更多详细信息。
训练
NeMo工具包[3]用于对模型进行数百个epoch的训练。这些模型使用示例脚本和基础配置进行训练。
这些模型的分词器使用训练集的文本转录,通过脚本构建。
用作神经重评分器的语言模型的检查点可在此处找到。你可以在ASR语言建模中找到有关如何为ASR模型训练和使用语言模型的更多信息。
数据集
本集合中的所有模型都在一个复合数据集(NeMo ASRSET)上进行训练,该数据集包含数千小时的英语语音:
- Librispeech:960小时的英语语音
- Fisher语料库
- Switchboard-1数据集
- WSJ-0和WSJ-1
- 国家语音语料库(第1部分、第6部分)
- VCTK
- VoxPopuli(英语)
- Europarl-ASR(英语)
- 多语言Librispeech(MLS英语) - 2000小时子集
- Mozilla Common Voice(v7.0)
注意:旧版本的模型可能在较小的数据集上进行训练。
性能
本集合中可用模型的列表如下表所示。ASR模型的性能以单词错误率(WER%)报告,采用贪心解码。
版本 |
分词器 |
词汇量大小 |
LS test-other |
LS test-clean |
WSJ Eval92 |
WSJ Dev93 |
NSC Part 1 |
MLS Test |
MLS Dev |
MCV Test 6.1 |
训练数据集 |
1.6.0 |
SentencePiece Unigram |
128 |
4.3 |
2.2 |
2.0 |
2.9 |
7.0 |
7.2 |
6.5 |
8.0 |
NeMo ASRSET 2.0 |
在使用NVIDIA Riva进行部署时,你可以将此模型与外部语言模型结合使用,以进一步降低WER。下表报告了最新模型在不同语言建模技术下的WER(%)。
语言建模 |
训练数据集 |
LS test-other |
LS test-clean |
注释 |
N-gram LM |
LS Train + LS LM Corpus |
3.5 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
神经重评分器(Transformer) |
LS Train + LS LM Corpus |
3.4 |
1.7 |
N=10, beam_width=128 |
N-gram + 神经重评分器(Transformer) |
LS Train + LS LM Corpus |
3.2 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
局限性
由于该模型在公开可用的语音数据集上进行训练,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。对于带有口音的语音,模型的表现也可能较差。
使用NVIDIA Riva进行部署
为了获得最佳的实时准确性、低延迟和高吞吐量,请使用NVIDIA Riva部署该模型。NVIDIA Riva是一个加速语音AI SDK,可在本地、所有云、多云、混合云、边缘和嵌入式设备上部署。
此外,Riva还提供:
- 针对最常见语言的世界级开箱即用准确性,其模型检查点在专有数据上进行训练,经过数十万小时的GPU计算。
- 一流的准确性,支持运行时单词增强(例如品牌和产品名称),并可自定义声学模型、语言模型和反向文本归一化。
- 流式语音识别、Kubernetes兼容的扩展和企业级支持。
查看Riva实时演示。
🔧 技术细节
该模型是Conformer的非自回归“大型”变体,约有1.2亿个参数。它使用CTC损失/解码进行训练,可将语音转录为包含空格和撇号的小写英文字母。训练数据包含多个英语语音数据集,总时长数千小时。
📄 许可证
本模型使用的许可证为CC BY 4.0。
参考文献