语言:
- 德语
库名称: nemo
数据集:
- multilingual_librispeech
- mozilla-foundation/common_voice_12_0
- VoxPopuli
缩略图: null
标签:
- 自动语音识别
- 语音
- 音频
- 转换器
- FastConformer
- CTC
- 变压器
- pytorch
- NeMo
- hf-asr-leaderboard
许可证: cc-by-4.0
模型索引:
- 名称: stt_de_fastconformer_hybrid_large_pc
结果:
- 任务:
名称: 自动语音识别
类型: automatic-speech-recognition
数据集:
名称: common-voice-12-0
类型: mozilla-foundation/common_voice_12_0
配置: de
分割: test
参数:
语言: de
指标:
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: 多语言LibriSpeech
类型: facebook/multilingual_librispeech
配置: 德语
分割: test
参数:
语言: de
指标:
- 名称: 测试WER
类型: wer
值: 3.87
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Vox Populi
类型: facebook/voxpopuli
配置: 德语
分割: test
参数:
语言: de
指标:
- 名称: 测试WER
类型: wer
值: 8.88
- 任务:
名称: 自动语音识别
类型: automatic-speech-recognition
数据集:
名称: common-voice-12-0
类型: mozilla-foundation/common_voice_12_0
配置: 德语P&C
分割: test
参数:
语言: de
指标:
- 名称: 测试WER P&C
类型: wer
值: 5.39
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: 多语言LibriSpeech
类型: facebook/multilingual_librispeech
配置: 德语P&C
分割: test
参数:
语言: de
指标:
- 名称: 测试WER P&C
类型: wer
值: 11.1
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Vox Populi
类型: facebook/voxpopuli
配置: 德语P&C
分割: test
参数:
语言: de
指标:
- 名称: 测试WER P&C
类型: wer
值: 10.41
NVIDIA FastConformer-混合大型(德语)
|
|
| 
该模型转录包含大小写德语字母、空格、句号、逗号和问号的语音。这是FastConformer转换器-CTC(约115M参数)模型的“大型”版本。这是一个在两种损失上训练的混合模型:转换器(默认)和CTC。有关完整架构详情,请参阅模型架构部分和NeMo文档。
NVIDIA NeMo:训练
要训练、微调或使用该模型,您需要安装NVIDIA NeMo。建议在安装最新版Pytorch后安装它。
pip install nemo_toolkit['all']
如何使用此模型
该模型可在NeMo工具包[3]中使用,可作为预训练检查点用于推理或对另一个数据集进行微调。
自动实例化模型
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecHybridRNNTCTCBPEModel.from_pretrained(model_name="nvidia/stt_de_fastconformer_hybrid_large_pc")
使用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_de_fastconformer_hybrid_large_pc"
audio_dir="<包含音频文件的目录>"
使用CTC模式推理:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_de_fastconformer_hybrid_large_pc"
audio_dir="<包含音频文件的目录>"
decoder_type="ctc"
输入
该模型接受16000 Hz单声道音频(wav文件)作为输入。
输出
该模型为给定音频样本提供转录语音作为字符串。
模型架构
FastConformer [1]是Conformer模型的优化版本,具有8倍深度可分离卷积下采样。该模型在多任务设置中训练,结合了转换器和CTC解码器损失。您可以在Fast-Conformer模型中找到有关FastConformer的更多详细信息,以及关于混合转换器-CTC训练的混合转换器-CTC。
训练
NeMo工具包[3]用于训练这些模型数百个epoch。这些模型使用此示例脚本和此基础配置进行训练。
这些模型的分词器是使用训练集的文本转录本构建的,使用此脚本。
数据集
此集合中的所有模型均在包含2500小时德语语音的复合数据集(NeMo PnC ASRSET)上训练:
- MCV12(800小时)
- MLS(1500小时)
- Voxpopuli(200小时)
性能
自动语音识别模型的性能使用词错误率来衡量。由于此数据集在多个领域和更大的语料库上训练,通常在转录一般音频时表现更好。
下表总结了此集合中可用模型与转换器解码器的性能。ASR模型的性能以贪婪解码的词错误率(WER%)报告。
a) 在不含标点和大小写数据上使用转换器解码器
版本 |
分词器 |
词汇量 |
MCV12 DEV |
MCV12 TEST |
MLS DEV |
MLS TEST |
VOXPOPULI DEV |
VOXPOPULI TEST |
1.18.0 |
SentencePiece Unigram |
1024 |
4.36 |
5.1 |
3.33 |
3.87 |
11.03 |
8.88 |
b) 在含标点和大小写数据上使用转换器解码器
版本 |
分词器 |
词汇量 |
MCV12 DEV |
MCV12 TEST |
MLS DEV |
MLS TEST |
VOXPOPULI DEV |
VOXPOPULI TEST |
1.18.0 |
SentencePiece Unigram |
1024 |
4.66 |
5.39 |
10.12 |
11.1 |
12.96 |
10.41 |
限制
由于此模型是在公开可用的语音数据集上训练的,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。对于有口音的语音,模型的表现也可能较差。该模型仅输出标点符号:'.', ',', '?'
,因此在需要其他标点符号的场景中可能表现不佳。
NVIDIA Riva:部署
NVIDIA Riva,是一个加速的语音AI SDK,可部署在本地、所有云、多云、混合云、边缘和嵌入式设备上。
此外,Riva提供:
- 世界级的开箱即用准确性,针对最常见语言,模型检查点在专有数据上训练,耗费数十万GPU计算小时
- 最佳准确性,具有运行时词增强(例如品牌和产品名称)以及声学模型、语言模型和反向文本归一化的定制
- 流式语音识别、Kubernetes兼容的扩展和企业级支持
尽管此模型尚未由Riva支持,但支持的模型列表在此。
查看Riva实时演示。
参考文献
[1] 具有线性可扩展注意力的快速Conformer,用于高效语音识别
[2] Google Sentencepiece分词器
[3] NVIDIA NeMo工具包
许可证
使用此模型的许可证涵盖CC-BY-4.0。通过下载模型的公共和发布版本,您接受CC-BY-4.0许可证的条款和条件。