🚀 Parakeet CTC 0.6B (en)
parakeet-ctc-0.6b
是一个自动语音识别(ASR)模型,可将语音转录为小写英文字母。该模型由 NVIDIA NeMo 和 Suno.ai 团队联合开发,是 FastConformer CTC [1] 的 XL 版本(约 6 亿个参数)。有关完整的架构细节,请参阅模型架构部分和 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.EncDecCTCModelBPE.from_pretrained(model_name="nvidia/parakeet-ctc-0.6b")
使用 Python 进行转录
首先,获取一个示例音频文件:
wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav
然后,简单地执行以下操作:
asr_model.transcribe(['2086-149220-0033.wav'])
转录多个音频文件
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/parakeet-ctc-0.6b"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
输入
该模型接受 16000 Hz 的单声道音频(wav 文件)作为输入。
输出
该模型为给定的音频样本提供转录后的语音字符串。
✨ 主要特性
- 先进架构:基于 FastConformer [1] 架构,这是 Conformer 模型的优化版本,具有 8 倍深度可分离卷积下采样,并使用 CTC 损失进行训练。
- 多领域训练:在多个公共数据集和私有数据集上进行训练,涵盖了 64K 小时的英语语音,使其在不同领域的音频转录中表现出色。
- 高性能:在多个基准测试中表现良好,具有较低的词错误率(WER)。
📦 安装指南
要使用该模型,需要安装 NVIDIA NeMo 工具包。建议在安装最新版本的 PyTorch 后执行以下命令:
pip install nemo_toolkit['all']
💻 使用示例
基础用法
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name="nvidia/parakeet-ctc-0.6b")
高级用法
转录单个音频文件
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecCTCModelBPE.from_pretrained(model_name="nvidia/parakeet-ctc-0.6b")
import os
os.system("wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav")
result = asr_model.transcribe(['2086-149220-0033.wav'])
print(result)
转录多个音频文件
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/parakeet-ctc-0.6b"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
📚 详细文档
模型架构
FastConformer [1] 是 Conformer 模型的优化版本,具有 8 倍深度可分离卷积下采样。该模型使用 CTC 损失进行训练。有关 FastConformer 的更多详细信息,请参阅 Fast-Conformer Model。
训练
使用 NeMo 工具包 [3] 对模型进行了数百个 epoch 的训练。这些模型使用 示例脚本 和 基础配置 进行训练。
这些模型的分词器使用训练集的文本转录通过 脚本 构建。
数据集
该模型在由 NVIDIA NeMo 和 Suno 团队收集和准备的 64K 小时英语语音上进行训练。
训练数据集由一个 40K 小时的英语语音私有子集和来自以下公共数据集的 24K 小时语音组成:
- Librispeech:960 小时的英语语音
- Fisher Corpus
- Switchboard-1 Dataset
- WSJ-0 和 WSJ-1
- National Speech Corpus (Part 1, Part 6)
- VCTK
- VoxPopuli (EN)
- Europarl-ASR (EN)
- Multilingual Librispeech (MLS EN) - 2000 小时子集
- Mozilla Common Voice (v7.0)
- People's Speech - 12000 小时子集
性能
自动语音识别模型的性能使用词错误率(WER)进行衡量。由于该数据集在多个领域和更大的语料库上进行训练,因此在一般音频转录中通常表现更好。
以下表格总结了该集合中可用模型使用 CTC 解码器的性能。ASR 模型的性能以贪婪解码的词错误率(WER%)报告。
版本 |
分词器 |
词汇量 |
AMI |
Earnings-22 |
Giga Speech |
LS test-clean |
SPGI Speech |
TEDLIUM-v3 |
Vox Populi |
Common Voice |
1.22.0 |
SentencePiece Unigram |
1024 |
16.30 |
14.14 |
10.35 |
1.87 |
3.76 |
4.11 |
3.78 |
7.00 |
这些是没有外部语言模型的贪婪 WER 数字。有关评估的更多详细信息,请参阅 HuggingFace ASR Leaderboard。
NVIDIA Riva 部署
NVIDIA Riva 是一个加速的语音 AI SDK,可在本地、所有云、多云、混合云、边缘和嵌入式设备上部署。此外,Riva 还提供:
- 针对最常见语言的世界级开箱即用准确性,模型检查点在专有数据上进行了数十万 GPU 计算小时的训练。
- 具有运行时单词增强(例如品牌和产品名称)的一流准确性,以及对声学模型、语言模型和逆文本归一化的定制。
- 流式语音识别、Kubernetes 兼容扩展和企业级支持。
虽然该模型目前尚未得到 Riva 的支持,但 支持的模型列表在此。请查看 Riva 实时演示。
🔧 技术细节
- 模型训练:使用 NeMo 工具包 [3] 进行训练,训练脚本和配置文件可在 GitHub 上找到。
- 分词器:使用 SentencePiece Unigram 分词器,词汇量为 1024。
- 训练数据:涵盖了多个公共数据集和私有数据集,总计 64K 小时的英语语音。
📄 许可证
使用该模型的许可证遵循 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
[4] Suno.ai
[5] HuggingFace ASR Leaderboard