语言:
- 英语
库名称: nemo
数据集:
- librispeech_asr
- fisher_corpus
- Switchboard-1
- WSJ-0
- WSJ-1
- 新加坡国立语料库第一部分
- 新加坡国立语料库第六部分
- vctk
- mozilla-foundation/common_voice_7_0
- facebook/multilingual_librispeech
- facebook/voxpopuli
缩略图: 无
标签:
- 自动语音识别
- 语音
- 音频
- CTC
- Conformer
- Transformer
- pytorch
- NeMo
- hf-asr-leaderboard
- Riva
许可证: cc-by-4.0
小部件:
- 示例标题: Librispeech 样本1
来源: https://cdn-media.huggingface.co/speech_samples/sample1.flac
- 示例标题: Librispeech 样本2
来源: https://cdn-media.huggingface.co/speech_samples/sample2.flac
模型索引:
- 名称: stt_en_conformer_ctc_large
结果:
- 任务:
名称: 自动语音识别
类型: automatic-speech-recognition
数据集:
名称: LibriSpeech (干净)
类型: librispeech_asr
配置: clean
分割: test
参数:
语言: en
指标:
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: LibriSpeech (其他)
类型: librispeech_asr
配置: other
分割: test
参数:
语言: en
指标:
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: 多语言LibriSpeech
类型: facebook/multilingual_librispeech
配置: english
分割: test
参数:
语言: en
指标:
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Mozilla Common Voice 7.0
类型: mozilla-foundation/common_voice_7_0
配置: en
分割: test
参数:
语言: en
指标:
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Mozilla Common Voice 8.0
类型: mozilla-foundation/common_voice_8_0
配置: en
分割: test
参数:
语言: en
指标:
- 名称: 测试WER
类型: wer
值: 9.48
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: 华尔街日报92
类型: wsj_0
参数:
语言: en
指标:
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: 华尔街日报93
类型: wsj_1
参数:
语言: en
指标:
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: 新加坡国立语料库
类型: nsc_part_1
参数:
语言: en
指标:
NVIDIA Conformer-CTC 大型模型 (en-US)
|
|
|
|
|
该模型转录包含空格和撇号的英文小写字母语音,并在数千小时的英语语音数据上训练。它是Conformer的非自回归“大型”变体,约1.2亿参数。完整架构详情请参见模型架构部分和NeMo文档。该模型还兼容NVIDIA Riva,可用于生产级服务器部署。
使用方式
该模型可在NeMo工具包[3]中使用,可作为预训练检查点用于推理或对其他数据集进行微调。
要训练、微调或使用该模型,您需要安装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="<包含音频文件的目录>"
输入
该模型接受16 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
- 新加坡国立语料库(第一部分、第六部分)
- VCTK
- VoxPopuli(英语)
- Europarl-ASR(英语)
- 多语言Librispeech(MLS英语)- 2000小时子集
- Mozilla Common Voice(v7.0)
注意:旧版本的模型可能在较小的数据集上训练。
性能
下表显示了本集合中可用模型的列表。ASR模型的性能以贪婪解码的词错误率(WER%)报告。
版本 |
标记器 |
词汇量 |
LS测试-其他 |
LS测试-干净 |
WSJ评估92 |
WSJ开发93 |
NSC第一部分 |
MLS测试 |
MLS开发 |
MCV测试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测试-其他 |
LS测试-干净 |
备注 |
N-gram语言模型 |
LS训练 + LS语言模型语料库 |
3.5 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
神经重评分(Transformer) |
LS训练 + LS语言模型语料库 |
3.4 |
1.7 |
N=10, beam_width=128 |
N-gram + 神经重评分(Transformer) |
LS训练 + LS语言模型语料库 |
3.2 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
限制
由于该模型在公开可用的语音数据集上训练,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。对于口音语音,模型表现也可能较差。
使用NVIDIA Riva部署
为获得最佳实时准确性、延迟和吞吐量,请使用NVIDIA Riva部署模型,这是一个可部署在本地、所有云、多云、混合云、边缘和嵌入式的加速语音AI SDK。此外,Riva提供:
- 世界级开箱即用的准确性,针对最常见语言,模型检查点在专有数据上训练,耗费数十万GPU计算小时
- 通过运行时词增强(如品牌和产品名称)以及声学模型、语言模型和反向文本归一化的定制,实现最佳准确性
- 流式语音识别、Kubernetes兼容扩展和企业级支持
查看Riva实时演示。
参考文献