🚀 NVIDIA Conformer-CTC Large (en-US)
本模型可將語音轉錄為包含空格和撇號的小寫英文字母,它在數千小時的英語語音數據上進行了訓練。它是Conformer的非自迴歸“大型”變體,約有1.2億個參數。查看模型架構部分和NeMo文檔,可瞭解完整的架構細節。此外,它還與NVIDIA Riva兼容,可用於生產級服務器部署。
|
|
|
|
|
🚀 快速開始
本模型可在NeMo工具包[3]中使用,可作為預訓練檢查點用於推理,或在其他數據集上進行微調。
若要訓練、微調或使用該模型,你需要安裝NVIDIA NeMo。建議在安裝最新版本的PyTorch後再安裝它。
pip install nemo_toolkit['all']
✨ 主要特性
- 可將語音轉錄為包含空格和撇號的小寫英文字母。
- 基於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_en_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_en_conformer_ctc_large"
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
輸入
該模型接受16000 kHz單聲道音頻(wav文件)作為輸入。
輸出
該模型為給定的音頻樣本提供轉錄後的語音字符串。
📚 詳細文檔
模型架構
Conformer-CTC模型是用於自動語音識別的Conformer模型[1]的非自迴歸變體,它使用CTC損失/解碼而不是Transducer。你可以在Conformer-CTC模型中找到該模型的更多詳細信息。
訓練
NeMo工具包[3]用於對模型進行數百個epoch的訓練。這些模型使用示例腳本和基礎配置進行訓練。
這些模型的分詞器使用訓練集的文本轉錄,通過腳本構建。
用作神經重評分器的語言模型的檢查點可在此處找到。你可以在ASR語言建模中找到有關如何為ASR模型訓練和使用語言模型的更多信息。
數據集
本集合中的所有模型都在一個複合數據集(NeMo ASRSET)上進行訓練,該數據集包含數千小時的英語語音:
- Librispeech:960小時的英語語音
- Fisher語料庫
- Switchboard-1數據集
- WSJ-0和WSJ-1
- 國家語音語料庫(第1部分、第6部分)
- VCTK
- VoxPopuli(英語)
- Europarl-ASR(英語)
- 多語言Librispeech(MLS英語) - 2000小時子集
- Mozilla Common Voice(v7.0)
注意:舊版本的模型可能在較小的數據集上進行訓練。
性能
本集合中可用模型的列表如下表所示。ASR模型的性能以單詞錯誤率(WER%)報告,採用貪心解碼。
版本 |
分詞器 |
詞彙量大小 |
LS test-other |
LS test-clean |
WSJ Eval92 |
WSJ Dev93 |
NSC Part 1 |
MLS Test |
MLS Dev |
MCV Test 6.1 |
訓練數據集 |
1.6.0 |
SentencePiece Unigram |
128 |
4.3 |
2.2 |
2.0 |
2.9 |
7.0 |
7.2 |
6.5 |
8.0 |
NeMo ASRSET 2.0 |
在使用NVIDIA Riva進行部署時,你可以將此模型與外部語言模型結合使用,以進一步降低WER。下表報告了最新模型在不同語言建模技術下的WER(%)。
語言建模 |
訓練數據集 |
LS test-other |
LS test-clean |
註釋 |
N-gram LM |
LS Train + LS LM Corpus |
3.5 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
神經重評分器(Transformer) |
LS Train + LS LM Corpus |
3.4 |
1.7 |
N=10, beam_width=128 |
N-gram + 神經重評分器(Transformer) |
LS Train + LS LM Corpus |
3.2 |
1.8 |
N=10, beam_width=128, n_gram_alpha=1.0, n_gram_beta=1.0 |
侷限性
由於該模型在公開可用的語音數據集上進行訓練,對於包含技術術語或模型未訓練過的方言的語音,其性能可能會下降。對於帶有口音的語音,模型的表現也可能較差。
使用NVIDIA Riva進行部署
為了獲得最佳的即時準確性、低延遲和高吞吐量,請使用NVIDIA Riva部署該模型。NVIDIA Riva是一個加速語音AI SDK,可在本地、所有云、多雲、混合雲、邊緣和嵌入式設備上部署。
此外,Riva還提供:
- 針對最常見語言的世界級開箱即用準確性,其模型檢查點在專有數據上進行訓練,經過數十萬小時的GPU計算。
- 一流的準確性,支持運行時單詞增強(例如品牌和產品名稱),並可自定義聲學模型、語言模型和反向文本歸一化。
- 流式語音識別、Kubernetes兼容的擴展和企業級支持。
查看Riva即時演示。
🔧 技術細節
該模型是Conformer的非自迴歸“大型”變體,約有1.2億個參數。它使用CTC損失/解碼進行訓練,可將語音轉錄為包含空格和撇號的小寫英文字母。訓練數據包含多個英語語音數據集,總時長數千小時。
📄 許可證
本模型使用的許可證為CC BY 4.0。
參考文獻