语言:
- 乌克兰语
库名称: nemo
数据集:
- mozilla-foundation/common_voice_10_0
标签:
- 自动语音识别
- 语音
- 音频
- CTC
- Citrinet
- Transformer
- pytorch
- NeMo
- hf-asr-leaderboard
- Riva
模型索引:
- 名称: stt_uk_citrinet_1024_gamma_0_25
结果:
- 数据集:
参数:
语言: 乌克兰语
名称: Mozilla Common Voice 10.0
配置: 乌克兰语
分割: 测试集
类型: mozilla-foundation/common_voice_10_0
指标:
- 名称: 测试WER
类型: wer
值: 5.02
任务:
名称: 自动语音识别
类型: automatic-speech-recognition
- 数据集:
参数:
语言: 乌克兰语
名称: Mozilla Common Voice 10.0
配置: 乌克兰语
分割: 开发集
类型: mozilla-foundation/common_voice_10_0
指标:
- 名称: 测试WER
类型: wer
值: 4.65
任务:
名称: 自动语音识别
类型: automatic-speech-recognition
- 数据集:
参数:
语言: 乌克兰语
名称: Mozilla Common Voice 9.0
配置: 乌克兰语
分割: 测试集
类型: mozilla-foundation/common_voice_9_0
指标:
- 名称: 测试WER
类型: wer
值: 3.75
任务:
名称: 自动语音识别
类型: automatic-speech-recognition
- 数据集:
参数:
语言: 乌克兰语
名称: Mozilla Common Voice 9.0
配置: 乌克兰语
分割: 开发集
类型: mozilla-foundation/common_voice_9_0
指标:
- 名称: 测试WER
类型: wer
值: 4.88
任务:
名称: 自动语音识别
类型: automatic-speech-recognition
- 数据集:
参数:
语言: 乌克兰语
名称: Mozilla Common Voice 8.0
配置: 乌克兰语
分割: 测试集
类型: mozilla-foundation/common_voice_8_0
指标:
- 名称: 测试WER
类型: wer
值: 3.52
任务:
名称: 自动语音识别
类型: automatic-speech-recognition
- 数据集:
参数:
语言: 乌克兰语
名称: Mozilla Common Voice 8.0
配置: 乌克兰语
分割: 开发集
类型: mozilla-foundation/common_voice_8_0
指标:
- 名称: 测试WER
类型: wer
值: 5.02
任务:
名称: 自动语音识别
类型: automatic-speech-recognition
许可证: cc-by-4.0
NVIDIA流式Citrinet 1024(乌克兰语)
|
|
|
|
|
该模型转录包含空格和撇号的乌克兰语小写字母语音,并在69小时的乌克兰语音数据上进行训练。它是流式Citrinet的“大型”非自回归变体,拥有约1.41亿参数。该模型通过跨语言迁移学习[4]方法,在乌克兰语音数据上从预训练的俄语Citrinet-1024模型微调而来。完整架构详情请参阅模型架构部分和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.EncDecCTCModel.from_pretrained("nvidia/stt_uk_citrinet_1024_gamma_0_25")
使用Python转录
首先,获取一个样本。
然后简单执行:
output = asr_model.transcribe(['sample.wav'])
print(output[0].text)
转录多个音频文件
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_uk_citrinet_1024_gamma_0_25"
audio_dir="<包含音频文件的目录>"
输入
该模型接受16kHz单声道音频(wav文件)作为输入。
输出
该模型为给定音频样本提供转录语音字符串。
模型架构
流式Citrinet-1024模型是用于自动语音识别的Citrinet模型[1]的非自回归、流式变体,使用CTC损失/解码而非转换器。您可以在Citrinet模型中找到更多关于此模型的信息。
训练
使用NeMo工具包[3]训练该模型1000个周期。此模型使用此示例脚本和此基础配置进行训练。
该模型的分词器使用训练集的文本转录本构建,使用此脚本。
有关跨语言迁移学习的详细信息,请参阅[4]。
数据集
该模型使用经过验证的Mozilla Common Voice Corpus 10.0数据集(不包括开发和测试数据)进行训练,包含69小时的乌克兰语音。该模型微调自俄语模型,该俄语模型在以下数据集的联合上训练:(1) Mozilla Common Voice (V7 Ru), (2) Ru LibriSpeech (RuLS), (3) Sber GOLOS和(4) SOVA数据集。
性能
下表显示了此集合中可用模型的列表。ASR模型的性能以贪婪解码的词错误率(WER%)报告。
版本 |
分词器 |
词汇量大小 |
MCV-10测试集 |
MCV-10开发集 |
MCV-9测试集 |
MCV-9开发集 |
MCV-8测试集 |
MCV-8开发集 |
1.0.0 |
SentencePiece Unigram |
1024 |
5.02 |
4.65 |
3.75 |
4.88 |
3.52 |
5.02 |
限制
由于该模型在公开可用的语音数据集上训练,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。对于带口音的语音,模型的表现也可能较差。
使用NVIDIA Riva部署
为了获得最佳的实时准确性、延迟和吞吐量,使用NVIDIA Riva部署该模型,这是一个加速的语音AI SDK,可部署在本地、所有云、多云、混合云、边缘和嵌入式设备上。此外,Riva提供:
- 世界级的开箱即用准确性,针对最常见语言,模型检查点使用专有数据训练,耗费数十万GPU计算小时
- 通过运行时词增强(例如品牌和产品名称)以及声学模型、语言模型和逆文本归一化的定制,实现最佳准确性
- 流式语音识别、Kubernetes兼容的扩展和企业级支持
查看Riva实时演示。
参考文献
[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
[4] Cross-Language Transfer Learning