模型简介
模型特点
模型能力
使用案例
许可证: cc-by-4.0 语言:
- 英语
- 德语
- 西班牙语
- 法语 库名称: nemo 数据集:
- librispeech_asr
- fisher_corpus
- Switchboard-1
- WSJ-0
- WSJ-1
- 新加坡国家语料库第一部分
- 新加坡国家语料库第六部分
- vctk
- voxpopuli
- europarl
- multilingual_librispeech
- mozilla-foundation/common_voice_8_0
- MLCommons/peoples_speech 缩略图: 无 标签:
- 自动语音识别
- 自动语音翻译
- 语音
- 音频
- Transformer
- FastConformer
- Conformer
- pytorch
- NeMo
- hf-asr-leaderboard 小部件:
- 示例标题: Librispeech 样本1 src: https://cdn-media.huggingface.co/speech_samples/sample1.flac
- 示例标题: Librispeech 样本2 src: https://cdn-media.huggingface.co/speech_samples/sample2.flac 模型索引:
- 名称: canary-180m-flash
结果:
- 任务:
名称: 自动语音识别
类型: automatic-speech-recognition
数据集:
名称: LibriSpeech (其他)
类型: librispeech_asr
配置: other
分割: test
参数:
语言: en
指标:
- 名称: 测试WER 类型: wer 值: 2.87
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: SPGI Speech
类型: kensho/spgispeech
配置: test
分割: test
参数:
语言: en
指标:
- 名称: 测试WER 类型: wer 值: 1.95
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Mozilla Common Voice 16.1
类型: mozilla-foundation/common_voice_16_1
配置: en
分割: test
参数:
语言: en
指标:
- 名称: 测试WER (英语) 类型: wer 值: 6.99
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Mozilla Common Voice 16.1
类型: mozilla-foundation/common_voice_16_1
配置: de
分割: test
参数:
语言: de
指标:
- 名称: 测试WER (德语) 类型: wer 值: 4.03
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Mozilla Common Voice 16.1
类型: mozilla-foundation/common_voice_16_1
配置: es
分割: test
参数:
语言: es
指标:
- 名称: 测试WER (西班牙语) 类型: wer 值: 3.31
- 任务:
类型: 自动语音识别
名称: automatic-speech-recognition
数据集:
名称: Mozilla Common Voice 16.1
类型: mozilla-foundation/common_voice_16_1
配置: fr
分割: test
参数:
语言: fr
指标:
- 名称: 测试WER (法语) 类型: wer 值: 5.88
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: FLEURS
类型: google/fleurs
配置: en_us
分割: test
参数:
语言: en-de
指标:
- 名称: 测试BLEU (英->德) 类型: bleu 值: 32.27
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: FLEURS
类型: google/fleurs
配置: en_us
分割: test
参数:
语言: en-de
指标:
- 名称: 测试BLEU (英->西) 类型: bleu 值: 22.6
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: FLEURS
类型: google/fleurs
配置: en_us
分割: test
参数:
语言: en-de
指标:
- 名称: 测试BLEU (英->法) 类型: bleu 值: 41.22
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: FLEURS
类型: google/fleurs
配置: de_de
分割: test
参数:
语言: de-en
指标:
- 名称: 测试BLEU (德->英) 类型: bleu 值: 35.5
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: FLEURS
类型: google/fleurs
配置: es_419
分割: test
参数:
语言: es-en
指标:
- 名称: 测试BLEU (西->英) 类型: bleu 值: 23.32
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: FLEURS
类型: google/fleurs
配置: fr_fr
分割: test
参数:
语言: fr-en
指标:
- 名称: 测试BLEU (法->英) 类型: bleu 值: 33.42
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: COVOST
类型: covost2
配置: de_de
分割: test
参数:
语言: de-en
指标:
- 名称: 测试BLEU (德->英) 类型: bleu 值: 39.33
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: COVOST
类型: covost2
配置: es_419
分割: test
参数:
语言: es-en
指标:
- 名称: 测试BLEU (西->英) 类型: bleu 值: 41.86
- 任务:
类型: 自动语音翻译
名称: automatic-speech-translation
数据集:
名称: COVOST
类型: covost2
配置: fr_fr
分割: test
参数:
语言: fr-en
指标:
- 名称: 测试BLEU (法->英) 类型: bleu 值: 41.43
- 任务:
名称: 自动语音识别
类型: automatic-speech-recognition
数据集:
名称: LibriSpeech (其他)
类型: librispeech_asr
配置: other
分割: test
参数:
语言: en
指标:
指标:
- wer
- bleu 管道标签: automatic-speech-recognition
Canary 180M Flash
描述:
NVIDIA NeMo Canary Flash [1] 是基于Canary架构[2]的多语言多任务模型家族,在多个语音基准测试中实现了最先进的性能。拥有1.82亿参数和超过1200 RTFx的推理速度(在open-asr-leaderboard数据集上),canary-180m-flash支持4种语言(英语、德语、法语、西班牙语)的自动语音转文本识别(ASR),以及从英语到德语/法语/西班牙语和从德语/法语/西班牙语到英语的翻译,可选择是否包含标点和大小写(PnC)。 此外,canary-180m-flash还提供英语、德语、法语和西班牙语的单词级和分段级时间戳实验功能。 该模型采用宽松的CC-BY-4.0许可证发布,可用于商业用途。
模型架构:
Canary是一个编码器-解码器模型,采用FastConformer[3]编码器和Transformer解码器[4]。通过从编码器提取音频特征,任务令牌如<目标语言>、<任务>、<切换时间戳>和<切换PnC>被输入到Transformer解码器以触发文本生成过程。Canary使用来自每种语言的SentencePiece[6]分词器的串联分词器[5],这使得扩展到更多语言变得容易。canary-180m-flash模型有17个编码器层和4个解码器层,总计1.82亿参数。有关架构的更多细节,请参阅[1]。
NVIDIA NeMo
要训练、微调或转录canary-180m-flash,您需要安装NVIDIA NeMo。
如何使用此模型
该模型可在NeMo框架[7]中使用,可作为预训练检查点用于推理或微调到其他数据集。
请参阅我们的教程获取更多细节。
以下列出了一些推理示例:
加载模型
from nemo.collections.asr.models import EncDecMultiTaskModel
# 加载模型
canary_model = EncDecMultiTaskModel.from_pretrained('nvidia/canary-180m-flash')
# 更新解码参数
decode_cfg = canary_model.cfg.decoding
decode_cfg.beam.beam_size = 1
canary_model.change_decoding_strategy(decode_cfg)
输入:
输入类型: 音频
输入格式: .wav或.flac文件
输入参数: 1D
其他输入相关属性: 16000 Hz单声道音频,无需预处理
canary-180m-flash的输入可以是音频文件路径列表或jsonl清单文件。
使用canary-180m-flash进行推理:
如果输入是路径列表,canary-180m-flash假设音频为英语并进行转录。即canary-180m-flash的默认行为是英语ASR。
output = canary_model.transcribe(
['path1.wav', 'path2.wav'],
batch_size=16, # 推理批次大小
pnc='True', # 生成带标点和大小写的输出
)
predicted_text = output[0].text
canary-180m-flash还可以预测单词级和分段级时间戳
output = canary_model.transcribe(
['filepath.wav'],
timestamps=True, # 生成带时间戳的输出
)
predicted_text = output[0].text
word_level_timestamps = output[0].timestamp['word']
segment_level_timestamps = output[0].timestamp['segment']
对于超过10秒的音频文件,建议使用长格式推理脚本(下一节解释)和chunk_len_in_secs=10.0
。
要使用canary-180m-flash转录其他支持的语言或执行语音到文本翻译或提供单词级时间戳,请将输入指定为jsonl清单文件,其中文件中的每一行是一个包含以下字段的字典:
# input_manifest.json中的一行示例
{
"audio_filepath": "/path/to/audio.wav", # 音频文件路径
"source_lang": "en", # 音频输入语言,设置`source_lang`==`target_lang`进行ASR,选项=['en','de','es','fr']
"target_lang": "en", # 文本输出语言,选项=['en','de','es','fr']
"pnc": "yes", # 是否包含PnC输出,选项=['yes', 'no']
"timestamp": "yes", # 是否输出单词级时间戳,选项=['yes', 'no']
}
然后使用:
output = canary_model.transcribe(
"<输入清单文件路径>",
batch_size=16, # 推理批次大小
)
使用canary-180m-flash进行长格式推理:
Canary模型设计用于处理小于40秒的输入音频。为了处理更长的音频,NeMo包含speech_to_text_aed_chunked_infer.py脚本,该脚本处理分块,对分块文件执行推理,并拼接转录文本。
该脚本将对audio_dir
中的所有.wav
文件执行推理。或者,您也可以传递如上所示的清单文件路径。解码输出将保存在output_json_path
。
python scripts/speech_to_text_aed_chunked_infer.py \
pretrained_name="nvidia/canary-180m-flash" \
audio_dir=$audio_dir \
output_filename=$output_json_path \
chunk_len_in_secs=40.0 \
batch_size=1 \
decoding.beam.beam_size=1 \
timestamps=False
注意对于带时间戳的长格式推理,建议使用chunk_len_in_secs
为10秒。
输出:
输出类型: 文本
输出格式: 根据解码任务选择的字符串文本输出(带时间戳)
输出参数: 一维文本字符串
其他输出相关属性: 可能需要逆文本规范化;不处理特殊字符
软件集成:
运行时引擎:
- NeMo - 主分支
支持的硬件微架构兼容性:
- [NVIDIA Ampere]
- [NVIDIA Blackwell]
- [NVIDIA Jetson]
- [NVIDIA Hopper]
- [NVIDIA Lovelace]
- [NVIDIA Pascal]
- [NVIDIA Turing]
- [NVIDIA Volta]
[首选/支持]操作系统:
- [Linux]
- [Linux 4 Tegra]
- [Windows]
模型版本:
canary-180m-flash
训练和评估数据集:
训练数据集:
canary-180m-flash模型在总计85K小时的语音数据上训练。包括31K小时的公开数据,20K小时由Suno收集的数据,以及34K小时的内部数据。 以下数据集包括对话、网络视频和有声书录音。
数据收集方法:
- 人工
标注方法:
- 混合:人工、自动化
公开数据的组成部分如下。
英语 (25.5k小时)
- Librispeech 960小时
- Fisher语料库
- Switchboard-1数据集
- WSJ-0和WSJ-1
- 国家语音语料库(第一部分、第六部分)
- VCTK
- VoxPopuli (英语)
- Europarl-ASR (英语)
- 多语言Librispeech (MLS 英语) - 2,000小时子集
- Mozilla Common Voice (v7.0)
- People's Speech - 12,000小时子集
- Mozilla Common Voice (v11.0) - 1,474小时子集
德语 (2.5k小时)
- Mozilla Common Voice (v12.0) - 800小时子集
- 多语言Librispeech (MLS 德语) - 1,500小时子集
- VoxPopuli (德语) - 200小时子集
西班牙语 (1.4k小时)
- Mozilla Common Voice (v12.0) - 395小时子集
- 多语言Librispeech (MLS 西班牙语) - 780小时子集
- VoxPopuli (西班牙语) - 108小时子集
- Fisher - 141小时子集
法语 (1.8k小时)
- Mozilla Common Voice (v12.0) - 708小时子集
- 多语言Librispeech (MLS 法语) - 926小时子集
- VoxPopuli (法语) - 165小时子集
评估数据集:
数据收集方法:
- 人工
标注方法:
- 人工
自动语音识别:
- HuggingFace OpenASR Leaderboard评估集
- MLS
- [MCV] (https://commonvoice.mozilla.org/en/datasets)
自动语音翻译:
时间戳预测:
幻觉鲁棒性:
- MUSAN 48小时评估集
噪声鲁棒性:
模型公平性:
训练
canary-180m-flash使用NVIDIA NeMo框架[7]训练,总计219K步,采用2D分桶[1]并使用OOMptimizer[8]设置最佳批次大小。模型在32个NVIDIA A100 80GB GPU上训练。 可以使用此示例脚本和



