🚀 NVIDIA Conformer-CTC Large (fr)
NVIDIA Conformer-CTC Large (fr) 模型基于超过1500小时的法语语音数据进行训练,是 Conformer 的非自回归“大型”变体,拥有约1.2亿个参数,可用于自动语音识别任务,还能与 NVIDIA Riva 兼容以进行生产级服务器部署。
🚀 快速开始
此模型可在 NeMo 工具包中使用,可作为预训练检查点进行推理或在其他数据集上进行微调。要训练、微调或使用该模型,你需要安装 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_fr_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_fr_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
✨ 主要特性
- 数据丰富:在包含超过1500小时法语语音的复合数据集上训练。
- 模型规模大: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_fr_conformer_ctc_large")
高级用法
转录单个音频文件
import nemo.collections.asr as nemo_asr
import os
os.system("wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav")
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained("nvidia/stt_fr_conformer_ctc_large")
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_fr_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
📚 详细文档
模型架构
Conformer-CTC 模型是用于自动语音识别的 Conformer 模型的非自回归变体,它使用 CTC 损失/解码而不是 Transducer。更多详细架构信息请参考:Conformer-CTC Model。
训练
使用 NeMo 工具包 [3] 对模型进行了数百个 epoch 的训练。这些模型使用 此脚本 和 此基础配置 进行训练。
这些模型的分词器使用训练集的文本转录通过 此脚本 构建。
用于重评分的语言模型的检查点可在 此处 找到。更多关于如何为 ASR 模型训练和使用语言模型的信息请参考:ASR Language Modeling
数据集
本集合中的所有模型都在一个复合数据集(NeMo ASRSET)上进行训练,该数据集包含超过一千小时的法语语音:
- MozillaCommonVoice 7.0 - 356 小时
- Multilingual LibriSpeech - 1036 小时
- VoxPopuli - 182 小时
两个模型使用相同的数据集,但在第二个模型的训练中,有一个去除数据中连字符的预处理步骤。
性能
自动语音识别模型的性能使用词错误率(WER)来衡量。由于该数据集在多个领域和更大的语料库上进行训练,因此在一般音频转录方面通常表现更好。
最新模型在以下评估数据集上获得了以下贪心得分:
- MCV7.0 开发集 - 8.35 %
- MCV7.0 测试集 - 9.63 %
- MLS 开发集 - 5.88 %
- MLS 测试集 - 4.91 %
使用 128 束搜索和 4gram KenLM 模型时:
- MCV7.0 开发集 - 7.95 %
- MCV7.0 测试集 - 9.16 %
- MLS 开发集 - 5.57 %
- MLS 测试集 - 4.66 %
请注意,这些评估数据集已进行过滤和预处理,仅包含法文字母字符,并去除了连字符和撇号以外的标点符号。
局限性
由于该模型是在公开可用的语音数据集上训练的,对于包含技术术语或模型未训练过的方言的语音,其性能可能会下降。对于带有口音的语音,模型的性能也可能较差。
此外,由于训练集的部分内容包含 1990 年前后的正字法改革文本,两种风格之间的标点规则可能会有所不同。对于需要更高一致性的下游任务,可能需要进行微调或下游处理。如果不需要精确的正字法,建议使用第二个模型。
与 NVIDIA Riva 部署
为了获得最佳的实时准确性、低延迟和高吞吐量,可使用 NVIDIA Riva 部署该模型,它是一个可在本地、所有云、多云、混合云、边缘和嵌入式设备上部署的加速语音 AI SDK。
此外,Riva 还提供以下功能:
- 针对最常见语言的开箱即用的世界级准确性,其模型检查点在专有数据上进行了数十万 GPU 计算小时的训练。
- 具有运行时单词增强(例如品牌和产品名称)以及声学模型、语言模型和逆文本规范化定制功能的一流准确性。
- 流式语音识别、Kubernetes 兼容的扩展以及企业级支持。
查看 Riva 实时演示。
🔧 技术细节
输入
该模型接受 16000 kHz 单声道音频(wav 文件)作为输入。
输出
该模型为给定的音频样本提供转录后的语音字符串。
📄 许可证
本模型采用 CC BY 4.0 许可证。
参考文献