语言:
- 英文
模型库名称: nemo
数据集:
- librispeech_asr
- fisher_corpus
- Switchboard-1
- WSJ-0
- WSJ-1
- 新加坡国立语料库第一部分
- 新加坡国立语料库第六部分
- vctk
- VoxPopuli-EN
- Europarl-ASR-EN
- 多语言LibriSpeech-2000小时
- mozilla-foundation/common_voice_8_0
- MLCommons/peoples_speech
缩略图: 无
标签:
- 自动语音识别
- 语音
- 流式处理
- 音频
- 转换器
- Conformer
- CTC
- pytorch
- NeMo
许可证: cc-by-4.0
小部件:
- 示例标题: Librispeech 样本1
来源: https://cdn-media.huggingface.co/speech_samples/sample1.flac
- 示例标题: Librispeech 样本2
来源: https://cdn-media.huggingface.co/speech_samples/sample2.flac
模型索引:
- 名称: stt_en_fastconformer_hybrid_large_streaming_multi
结果:
- 任务:
类型: 自动语音识别
名称: 自动语音识别
数据集:
名称: LibriSpeech (其他)
类型: librispeech_asr
配置: 其他
分割: 测试
参数:
语言: 英文
指标:
NVIDIA流式Conformer-Hybrid大模型(美式英语)
|
|
| 
本集合包含支持多前瞻窗口的缓存感知FastConformer-Hybrid大模型(约1.14亿参数),基于大规模英语语音训练。这些模型专为流式自动语音识别设计,可适应多种延迟场景(0毫秒、80毫秒、480毫秒、1040毫秒)。实际应用中,各延迟场景下的最差延迟和平均延迟约为标称值的一半。更多技术细节和评估结果详见此论文[5]。
模型架构
这些模型是基于缓存感知技术的混合FastConformer流式版本。缓存感知模型的技术说明参见:缓存感知流式Conformer[5]。通过多前瞻窗口训练,模型可灵活支持不同延迟级别。切换前瞻窗口的方法详见缓存感知模型文档。
FastConformer[4]是Conformer模型[1]的优化版本,技术细节参见:Fast-Conformer模型。
本模型采用Transducer与CTC解码器联合损失的多任务训练框架[5]。混合训练方案说明参见:混合Transducer-CTC。解码器切换方法亦详见文档。
训练
使用NeMo工具包[3]训练数百个epoch,训练脚本参见示例代码,基础配置参见配置文件。SentencePiece分词器[2]基于训练集文本构建,构建脚本参见此处。
训练数据集
所有模型均在NeMo ASRSET复合数据集上训练,包含数千小时英语语音:
- Librispeech 960小时
- Fisher语料库
- Switchboard-1数据集
- WSJ-0和WSJ-1
- 国家语音语料库(第1、6部分)
- VCTK
- VoxPopuli(英语)
- Europarl-ASR(英语)
- 多语言Librispeech(英语2000小时子集)
- Mozilla Common Voice(v7.0)
- People's Speech(12000小时子集)
注:旧版模型可能基于较小数据集训练。
性能表现
下表展示了CTC和Transducer解码器的性能指标(贪婪解码下的词错误率WER%)。
Transducer解码器
注意力上下文大小 |
LS测试集-其他([70,13]-1040ms) |
LS测试集-其他([70,6]-480ms) |
LS测试集-其他([70,1]-80ms) |
LS测试集-其他([70,0]-0ms) |
训练数据集 |
[[70,13],[70,6],[70,1],[70,0]] |
5.4 |
5.7 |
6.4 |
7.0 |
NeMo ASRSET 3.0 |
CTC解码器
注意力上下文大小 |
LS测试集-其他([70,13]-1040ms) |
LS测试集-其他([70,6]-480ms) |
LS测试集-其他([70,1]-80ms) |
LS测试集-其他([70,0]-0ms) |
训练数据集 |
[[70,13],[70,6],[70,1],[70,0]] |
6.2 |
6.7 |
7.8 |
8.4 |
NeMo ASRSET 3.0 |
使用指南
安装依赖
建议安装最新PyTorch后安装NeMo:
pip install nemo_toolkit['all']
流式ASR模拟
使用缓存感知流式推理脚本进行模拟,可通过--att_context_size
参数设置上下文窗口(默认使用1040ms配置)。
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("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')
transcription = asr_model.transcribe(['2086-149220-0033.wav'])
print(transcription[0].text)
批量转录
Transducer模式:
python examples/asr/transcribe_speech.py \
pretrained_name="stt_en_fastconformer_hybrid_large_streaming_multi" \
audio_dir="<音频目录>"
CTC模式:
python examples/asr/transcribe_speech.py \
pretrained_name="stt_en_fastconformer_hybrid_large_streaming_multi" \
audio_dir="<音频目录>" \
decoder_type="ctc"
切换前瞻窗口:
python examples/asr/transcribe_speech.py \
pretrained_name="stt_en_fastconformer_hybrid_large_streaming_multi" \
audio_dir="<音频目录>" \
att_context_size=[70,0]
输入输出
- 输入:16kHz单声道WAV音频
- 输出:转录文本字符串
局限性
由于训练数据限制,模型在专业术语、方言或特定口音场景下性能可能下降。
NVIDIA Riva部署
NVIDIA Riva是加速语音AI SDK,支持全场景部署。虽然当前模型尚未集成至Riva,但可查看已支持模型列表和在线演示。
参考文献
[1] Conformer: 语音识别的卷积增强Transformer
[2] Google SentencePiece分词器
[3] NVIDIA NeMo工具包
[4] 基于线性可扩展注意力的Fast Conformer高效语音识别
[5] 基于缓存的Stateful Conformer流式语音识别