🚀 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 許可證。
參考文獻