🚀 NVIDIA Conformer-CTC Large (Russian)
本項目是一個用於俄語自動語音識別的模型,基於Conformer-CTC架構,在多個俄語語音數據集上進行訓練,可將語音轉錄為小寫西裡爾字母文本。
🚀 快速開始
本模型可在NeMo工具包中使用,可作為預訓練的檢查點進行推理或在其他數據集上進行微調。
要訓練、微調或使用該模型,您需要安裝 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="stt_ru_conformer_ctc_large")
使用Python進行轉錄
output = asr_model.transcribe(['sample.wav'])
print(output[0].text)
轉錄多個音頻文件
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_ru_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
輸入
該模型接受16 kHz單聲道音頻(wav文件)作為輸入。
輸出
該模型為給定的音頻樣本提供轉錄後的語音字符串。
✨ 主要特性
- 本模型將語音轉錄為包含空格的小寫西裡爾字母,在約1636小時的俄語語音數據上進行訓練。
- 它是Conformer的非自迴歸“大型”變體,約有1.2億個參數。
📦 安裝指南
要使用此模型,您需要安裝 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="stt_ru_conformer_ctc_large")
output = asr_model.transcribe(['sample.wav'])
print(output[0].text)
高級用法
轉錄多個音頻文件:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py
pretrained_name="nvidia/stt_ru_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
📚 詳細文檔
模型架構
Conformer-CTC模型是用於自動語音識別的Conformer模型 [1] 的非自迴歸變體,它使用CTC損失/解碼而不是Transducer。您可以在 Conformer-CTC Model 中找到有關此模型詳細信息。
訓練
使用NeMo工具包 [3] 對模型進行了數百個epoch的訓練。這些模型使用 示例腳本 和 基礎配置 進行訓練。
這些模型的分詞器使用訓練集的文本轉錄,通過 腳本 構建。
我們使用的詞彙表包含33個字符:
[' ', 'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я']
在預處理過程中,帶有變音符號的稀有符號被替換。
數據集
此集合中的所有模型都在一個複合數據集(NeMo ASRSET)上進行訓練,該數據集包含超過一千小時的俄語語音:
- Mozilla Common Voice 10.0(俄語) - 訓練子集 [28小時]
- Golos - 眾包 [1070小時] 和遠場 [111小時] 子集
- Russian LibriSpeech(RuLS) [92小時]
- SOVA - RuAudiobooksDevices [260小時] 和RuDevices [75小時] 子集
性能
此集合中可用模型的列表如下表所示。ASR模型的性能以單詞錯誤率(WER%)報告,採用貪心解碼。
| 版本 | 分詞器 | 詞彙表大小 | MCV 10.0開發集 | MCV 10.0測試集 | GOLOS眾包測試集 | GOLOS遠場測試集 | RuLS測試集 | 訓練數據集 |
|------|-----------------------|--------------|-----------------|----------------|-----------------|------------------|---------------------|--------------|---------------|
| 1.13.0 | SentencePiece Unigram | 128 | 3.94 | 4.28 | 2.77 | 7.15 | 13.60 | NeMo ASRSET |
侷限性
由於該模型是在公開可用的語音數據集上訓練的,對於包含技術術語或模型未訓練過的方言的語音,其性能可能會下降。該模型對於帶有口音的語音表現可能也會較差。
使用NVIDIA Riva進行部署
為了獲得最佳的即時準確性、低延遲和高吞吐量,請使用 NVIDIA Riva 部署模型,這是一個可在本地、所有云、多雲、混合雲、邊緣和嵌入式設備上部署的加速語音AI SDK。
此外,Riva還提供:
- 針對最常用語言的世界級開箱即用準確性,模型檢查點在專有數據上進行了數十萬小時的GPU計算訓練
- 具有運行時單詞增強(例如品牌和產品名稱)以及聲學模型、語言模型和逆文本歸一化定製的一流準確性
- 流式語音識別、Kubernetes兼容的擴展和企業級支持
查看 Riva即時演示。
🔧 技術細節
Conformer-CTC模型是用於自動語音識別的Conformer模型的非自迴歸變體,它使用CTC損失/解碼而不是Transducer。詳細架構信息可參考 Conformer-CTC Model。
模型使用NeMo工具包進行訓練,訓練腳本和配置可在 示例腳本 和 基礎配置 中找到。分詞器使用訓練集的文本轉錄通過 腳本 構建。
📄 許可證
本項目採用CC BY 4.0許可證。
參考文獻