🚀 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