🚀 NVIDIA FastConformer-Hybrid Large (kk-ru)
本模型可将语音转录为小写的哈萨克语和俄语字母文本。它是FastConformer Transducer - CTC模型的“大型”版本(约1.15亿个参数),这是一个基于两种损失函数(Token - and - Duration Transducer(默认)和CTC)训练的混合模型。完整的架构细节请参阅模型架构部分和NeMo文档。
🚀 快速开始
要使用、训练或微调此模型,你需要安装 NVIDIA NeMo。建议在安装最新版本的Pytorch之后再安装它。
pip install nemo_toolkit['all']
✨ 主要特性
- 可转录哈萨克语和俄语语音为小写文本。
- 采用FastConformer Transducer - CTC混合模型架构,约1.15亿个参数。
- 基于Token - and - Duration Transducer和CTC两种损失函数进行训练。
📦 安装指南
要训练、微调或使用该模型,你需要安装 NVIDIA NeMo。建议在安装最新版本的Pytorch之后再进行安装。
pip install nemo_toolkit['all']
💻 使用示例
基础用法
自动实例化模型:
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecHybridRNNTCTCBPEModel.from_pretrained(model_name="nvidia/stt_kk_ru_fastconformer_hybrid_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)
高级用法
转录多个音频文件:
使用Transducer模式推理:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_kk_ru_fastconformer_hybrid_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
使用CTC模式推理:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_kk_ru_fastconformer_hybrid_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
decoder_type="ctc"
📚 详细文档
模型架构
FastConformer [1] 是Conformer模型的优化版本,具有8倍深度可分离卷积下采样。该模型在多任务设置中进行训练,结合了Token - and - Duration Transducer和CTC解码器损失。有关FastConformer的详细信息,请参阅Fast - Conformer模型,有关混合Transducer - CTC训练的信息,请参阅混合Transducer - CTC。
训练
使用NeMo工具包 [3] 对模型进行了数百个epoch的训练。这些模型使用示例脚本和基础配置进行训练。
这些模型的分词器是使用训练集的文本转录,通过脚本构建的。
数据集
该模型在两个复合数据集上进行训练,其中包含1550小时的哈萨克语语音:
- MCV 17.0哈萨克语(1小时)
- 哈萨克语语音数据集(KSD)(416小时)
- 哈萨克语语音语料库2(KSC2)(1133小时)
以及约850小时的俄语语音:
- Golos(604小时)
- Sova(122小时)
- Dusha(102小时)
- MCV12(19小时)
性能
自动语音识别模型的性能通过字错误率(WER)来衡量。由于该数据集在多个领域和更大的语料库上进行训练,因此在一般语音转录方面通常表现更好。
以下表格总结了使用Transducer解码器时模型的性能。ASR模型的性能以贪心解码的字错误率(WER%)报告。
a) 在哈萨克语数据上
版本 |
分词器 |
词汇量大小 |
MCV 17.0测试集 |
KSD测试集 |
KSC2测试集(朗读) |
KSC2测试集(自发) |
2.0.0 |
SentencePiece Unigram |
1024 |
15.48 |
7.08 |
4.43 |
15.25 |
b) 在俄语数据上
版本 |
分词器 |
词汇量大小 |
MCV12测试集 |
Sova测试集(RuDevices) |
Sova测试集(RuAudiobooksDevices) |
GOLOS测试集(远场) |
GOLOS测试集(人群) |
DUSHA测试集 |
2.0.0 |
SentencePiece Unigram |
1024 |
6.29 |
19.83 |
4.41 |
5.98 |
2.46 |
5.93 |
局限性
该模型是非流式的,输出的语音文本没有大写和标点符号。由于该模型是在公开可用的语音数据集上训练的,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。
NVIDIA Riva部署
NVIDIA Riva 是一个加速的语音AI SDK,可部署在本地、所有云、多云、混合云、边缘和嵌入式设备上。此外,Riva还提供:
- 针对最常见语言的世界级开箱即用准确率,其模型检查点在专有数据上进行了数十万GPU计算小时的训练。
- 具有运行时单词增强(例如品牌和产品名称)以及声学模型、语言模型和逆文本归一化定制功能的一流准确率。
- 流式语音识别、Kubernetes兼容的扩展和企业级支持。
虽然此模型目前尚未得到Riva的支持,但支持的模型列表在此。查看Riva实时演示。
🔧 技术细节
该模型是FastConformer Transducer - CTC的“大型”版本,约有1.15亿个参数。它是一个混合模型,基于Token - and - Duration Transducer(默认)和CTC两种损失函数进行训练。FastConformer是Conformer模型的优化版本,具备8倍深度可分离卷积下采样。
📄 许可证
使用此模型的许可受 CC - BY - 4.0 许可协议的约束。通过下载该模型的公开和发布版本,即表示你接受 CC - BY - 4.0 许可协议的条款和条件。
参考资料
[1] Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition
[2] Google Sentencepiece Tokenizer
[3] NVIDIA NeMo Toolkit
属性 |
详情 |
模型类型 |
FastConformer - Transducer CTC混合模型 |
训练数据 |
哈萨克语:MCV 17.0哈萨克语(1小时)、哈萨克语语音数据集(KSD)(416小时)、哈萨克语语音语料库2(KSC2)(1133小时);俄语:Golos(604小时)、Sova(122小时)、Dusha(102小时)、MCV12(19小时) |
许可证 |
CC - BY - 4.0 |
⚠️ 重要提示
该模型是非流式的,输出的语音文本没有大写和标点符号。由于该模型是在公开可用的语音数据集上训练的,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。
💡 使用建议
建议在安装最新版本的Pytorch之后再安装NVIDIA NeMo。在转录多个音频文件时,可根据需求选择Transducer模式或CTC模式进行推理。