🚀 NVIDIA流式Conformer-Hybrid大模型(美式英語)
本模型集合包含了支持多前瞻的緩存感知型FastConformer-Hybrid大尺寸版本(約1.14億個參數),在大規模英語語音數據上進行訓練。這些模型專為流式自動語音識別(ASR)而設計,可用於具有不同延遲(0毫秒、80毫秒、480毫秒、1040毫秒)的流式應用程序。每種情況下,模型的最壞延遲和平均延遲為上述數值的一半。你可以在此處 [5]找到更多細節和評估結果。
🚀 快速開始
本模型可在NeMo工具包 [3] 中使用,可作為預訓練檢查點用於流式處理或在其他數據集上進行微調。你需要安裝 NVIDIA NeMo,建議在安裝最新版本的PyTorch之後再安裝它。
pip install nemo_toolkit['all']
✨ 主要特性
- 本集合包含大尺寸的緩存感知型FastConformer-Hybrid版本,約有1.14億個參數,支持多前瞻。
- 模型在大規模英語語音數據上訓練,適用於流式自動語音識別。
- 支持多種延遲設置,可用於不同的流式應用場景。
📦 安裝指南
你需要安裝 NVIDIA NeMo,建議在安裝最新版本的PyTorch之後再進行安裝,安裝命令如下:
pip install nemo_toolkit['all']
💻 使用示例
基礎用法
模擬流式ASR
你可以使用此腳本模擬這些模型的流式ASR:緩存感知流式模擬。你可以使用 --att_context_size
設置上下文大小,否則將使用列表中的第一個上下文大小(1040毫秒)作為默認值。
使用Python進行轉錄
緩存感知模型的設計使得模型在離線和流式模式下的預測結果相同。因此,你可以使用常規的轉錄函數進行轉錄。首先,獲取一個示例音頻文件:
wget https://dldata-public.s3.us-east-2.amazonaws.com/2086-149220-0033.wav
然後,執行以下代碼:
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.EncDecHybridRNNTCTCBPEModel.from_pretrained(model_name="nvidia/stt_en_fastconformer_hybrid_large_streaming_multi")
asr_model.encoder.set_default_att_context_size([70,13])
asr_model.change_decoding_strategy(decoder_type='rnnt')
output = asr_model.transcribe(['2086-149220-0033.wav'])
print(output[0].text)
高級用法
轉錄多個音頻文件
使用Transducer模式進行推理:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py \
pretrained_name="stt_en_fastconformer_hybrid_large_streaming_multi" \
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>"
使用CTC模式進行推理:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py \
pretrained_name="stt_en_fastconformer_hybrid_large_streaming_multi" \
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>" \
decoder_type="ctc"
要在不同的前瞻設置之間切換,你可以在 transcribe_speech.py
腳本中設置 att_context_size
,如下所示:
python [NEMO_GIT_FOLDER]/examples/asr/transcribe_speech.py \
pretrained_name="stt_en_fastconformer_hybrid_large_streaming_multi" \
audio_dir="<DIRECTORY CONTAINING AUDIO FILES>" \
att_context_size=[70,0]
att_context_size
支持的值為:{[70,0]: 0毫秒, [70,1]: 80毫秒, [70,16]: 480毫秒, [70,33]: 1040毫秒}。
📚 詳細文檔
模型架構
這些模型是Hybrid FastConfomer的緩存感知版本,專為流式ASR訓練。你可以在 緩存感知流式Conformer [5] 中找到有關緩存感知模型的更多信息。
這些模型使用多前瞻進行訓練,使其能夠支持不同的延遲。要了解如何在不同的前瞻設置之間切換,你可以閱讀有關緩存感知模型的文檔。
FastConformer [4] 是Conformer模型 [1] 的優化版本,你可以在 Fast-Conformer模型 中找到有關FastConformer詳細信息。
該模型在多任務設置中使用聯合Transducer和CTC解碼器損失進行訓練 [5]。你可以在 混合Transducer-CTC 中找到有關混合Transducer-CTC訓練的更多信息。你也可以在文檔中找到有關如何在Transducer和CTC解碼器之間切換的更多內容。
訓練數據
本集合中的所有模型均在一個複合數據集(NeMo ASRSET)上進行訓練,該數據集包含數千小時的英語語音:
- Librispeech:960小時的英語語音
- Fisher語料庫
- Switchboard-1數據集
- WSJ-0和WSJ-1
- 新加坡國家語料庫(第1部分、第6部分)
- VCTK
- VoxPopuli(英語)
- Europarl-ASR(英語)
- 多語言Librispeech(MLS EN) - 2000小時子集
- Mozilla Common Voice(v7.0)
- People's Speech - 12000小時子集
注意:較舊版本的模型可能在較小的數據集上進行訓練。
性能表現
本集合中可用模型的列表在以下表格中展示,分別列出了Transducer解碼器和CTC解碼器的性能。自動語音識別模型的性能以單詞錯誤率(WER%)表示,採用貪心解碼。
Transducer解碼器
注意力上下文大小 |
LS test-other ([70,13]-1040毫秒) |
LS test-other ([70,6]-480毫秒) |
LS test-other ([70,1]-80毫秒) |
LS test-other ([70,0]-0秒) |
訓練數據集 |
[[70,13],[70,6],[70,1],[70,0]] |
5.4 |
5.7 |
6.4 |
7.0 |
NeMo ASRSET 3.0 |
CTC解碼器
注意力上下文大小 |
LS test-other ([70,13]-1040毫秒) |
LS test-other ([70,6]-480毫秒) |
LS test-other ([70,1]-80毫秒) |
LS test-other ([70,0]-0秒) |
訓練數據集 |
[[70,13],[70,6],[70,1],[70,0]] |
6.2 |
6.7 |
7.8 |
8.4 |
NeMo ASRSET 3.0 |
輸入輸出
- 輸入:本模型接受16000 KHz單聲道音頻(wav文件)作為輸入。
- 輸出:對於給定的音頻樣本,本模型以字符串形式提供轉錄後的語音。
侷限性
由於該模型是在公開可用的語音數據集上訓練的,對於包含技術術語或模型未訓練過的方言的語音,其性能可能會下降。對於帶有口音的語音,模型的表現可能也會較差。
NVIDIA Riva部署
NVIDIA Riva 是一個加速語音AI SDK,可部署在本地、所有云、多雲、混合雲、邊緣和嵌入式設備上。此外,Riva還提供以下功能:
- 針對最常見語言,使用在專有數據上訓練的模型檢查點,經過數十萬小時的GPU計算,實現世界級的開箱即用準確率。
- 通過運行時單詞增強(例如品牌和產品名稱)以及對聲學模型、語言模型和逆文本歸一化的定製,實現一流的準確率。
- 支持流式語音識別、Kubernetes兼容的擴展和企業級支持。
雖然此模型目前尚未得到Riva的支持,但 支持的模型列表在此處。你可以查看 Riva即時演示。
🔧 技術細節
這些模型是基於緩存感知的FastConformer-Hybrid架構,使用多前瞻技術進行訓練,以支持不同的延遲。模型在大規模英語語音數據集上進行訓練,採用聯合Transducer和CTC解碼器損失的多任務訓練方法。具體的技術細節和評估結果可以參考 Stateful Conformer with Cache-based Inference for Streaming Automatic Speech Recognition [5]。
📄 許可證
本模型使用的許可證為CC BY 4.0。
參考文獻
[1] Conformer: Convolution-augmented Transformer for Speech Recognition
[2] Google Sentencepiece Tokenizer
[3] NVIDIA NeMo Toolkit
[4] Fast Conformer with Linearly Scalable Attention for Efficient Speech Recognition
[5] Stateful Conformer with Cache-based Inference for Streaming Automatic Speech Recognition