🚀 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模式進行推理。