许可证:apache-2.0
语言:芬兰语
评估指标:
标签:
- 自动语音识别
- 芬兰语
- 芬兰文
- 训练生成
- hf-asr排行榜
- 鲁棒语音赛事
数据集:
- mozilla-foundation/common_voice_7_0
模型索引:
- 名称:wav2vec2-xlsr-300m-finnish-lm
结果:
- 任务:
名称:自动语音识别
类型:automatic-speech-recognition
数据集:
名称:Common Voice 7
类型:mozilla-foundation/common_voice_7_0
参数:fi
指标:
- 名称:测试WER
类型:wer
值:8.16
- 名称:测试CER
类型:cer
值:1.97
- 任务:
名称:自动语音识别
类型:automatic-speech-recognition
数据集:
名称:FLEURS ASR
类型:google/fleurs
参数:fi_fi
指标:
- 名称:测试WER
类型:wer
值:17.72
- 名称:测试CER
类型:cer
值:6.78
芬兰语ASR的Wav2vec2-xls-r-300m模型
该声学模型是基于facebook/wav2vec2-xls-r-300m针对芬兰语自动语音识别(ASR)任务微调的版本。模型通过275.6小时的芬兰语标注语音数据进行微调。Wav2Vec2 XLS-R模型在此论文中首次提出,并于此页面发布。
此仓库还包含解码阶段与声学模型配合使用的芬兰语KenLM语言模型。
注意:此模型与aapot/wav2vec2-xlsr-300m-finnish-lm完全相同,仅迁移至Finnish-NLP
组织下。
模型描述
Wav2Vec2 XLS-R是Facebook AI的大规模多语言预训练语音模型,基于43.6万小时无标注语音数据(包括VoxPopuli、MLS、CommonVoice、BABEL和VoxLingua107)预训练,采用wav2vec 2.0目标函数,覆盖128种语言。
关于预训练模型的更多信息,可参阅此博客和此论文。
本模型是预训练模型(3亿参数版本)针对芬兰语ASR任务的微调版本。
用途与限制
可用于芬兰语语音转文本任务。
使用方法
参考仓库中的run-finnish-asr-models.ipynb笔记本获取详细示例。
限制与偏差
- 音频长度:模型微调时使用的音频样本最长20秒,因此对类似长度的短音频效果最佳。处理更长音频时可能需采用分块方法。
- 数据偏差:训练数据主要来自芬兰议会数据集,可能对日常口语或方言泛化能力有限。数据中成年男性占比较高,可能影响对儿童或女性语音的识别效果。
- 语言模型:解码使用的KenLM语言模型基于音频转录文本和芬兰维基百科子集训练,可能对非正式文本(如方言)适应性不足。建议针对特定领域训练自定义语言模型。
训练数据
模型使用275.6小时芬兰语标注语音数据微调,来源如下:
所有数据集经筛选,仅包含最长20秒的音频样本。
训练流程
模型在Hugging Face组织的鲁棒语音挑战赛中训练,使用OVHcloud赞助的Tesla V100 GPU。
训练脚本基于Hugging Face提供的代码,仅对数据加载部分进行了自定义修改。
KenLM语言模型训练遵循Hugging Face的教程,使用音频转录文本和10万条清洗后的芬兰维基百科(2021年8月)数据训练5-gram模型。
超参数设置
训练参数:
- 学习率:5e-04
- 训练批次大小:32
- 评估批次大小:32
- 随机种子:42
- 优化器:8-bit Adam(betas=(0.9,0.999),epsilon=1e-08)
- 学习率调度器:线性预热(500步)
- 训练轮次:10
- 混合精度训练:原生AMP
预训练模型参数:
- 注意力丢弃率:0.094
- 隐藏层丢弃率:0.047
- 特征投影丢弃率:0.04
- 掩码时间概率:0.082
- 层级丢弃率:0.041
- 激活函数丢弃率:0.055
- CTC损失缩减方式:"mean"
训练结果
训练损失 |
轮次 |
步数 |
验证损失 |
WER |
0.973 |
0.17 |
500 |
0.5750 |
0.6844 |
...(中间数据省略)... |
... |
... |
... |
... |
0.3017 |
9.89 |
29500 |
0.1484 |
0.1800 |
框架版本
- Transformers 4.17.0.dev0
- PyTorch 1.10.2+cu102
- Datasets 1.18.3
- Tokenizers 0.11.0
评估结果
在以下数据集测试:
- Common Voice 7.0芬兰语测试集
- Common Voice 9.0芬兰语测试集
- FLEURS ASR芬兰语测试集
Common Voice 7.0测试
运行命令:
python3 eval.py --model_id Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm --dataset mozilla-foundation/common_voice_7_0 --config fi --split test
模型对比(第三行为本模型):
模型 |
参数量 |
带LM的WER |
无LM的WER |
带LM的CER |
无LM的CER |
Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned |
95M |
5.85 |
13.52 |
1.35 |
2.44 |
Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish |
300M |
4.13 |
9.66 |
0.90 |
1.66 |
Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm |
300M |
8.16 |
17.92 |
1.97 |
3.36 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm |
1000M |
5.65 |
13.11 |
1.20 |
2.23 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2 |
1000M |
4.09 |
9.73 |
0.88 |
1.65 |
Common Voice 9.0测试
运行命令:
python3 eval.py --model_id Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm --dataset mozilla-foundation/common_voice_9_0 --config fi --split test
结果对比:
模型 |
参数量 |
带LM的WER |
无LM的WER |
带LM的CER |
无LM的CER |
Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned |
95M |
5.93 |
14.08 |
1.40 |
2.59 |
Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish |
300M |
4.13 |
9.83 |
0.92 |
1.71 |
Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm |
300M |
7.42 |
16.45 |
1.79 |
3.07 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm |
1000M |
5.35 |
13.00 |
1.14 |
2.20 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2 |
1000M |
3.72 |
8.96 |
0.80 |
1.52 |
FLEURS ASR测试
运行命令:
python3 eval.py --model_id Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm --dataset google/fleurs --config fi_fi --split test
结果对比:
模型 |
参数量 |
带LM的WER |
无LM的WER |
带LM的CER |
无LM的CER |
Finnish-NLP/wav2vec2-base-fi-voxpopuli-v2-finetuned |
95M |
13.99 |
17.16 |
6.07 |
6.61 |
Finnish-NLP/wav2vec2-large-uralic-voxpopuli-v2-finnish |
300M |
12.44 |
14.63 |
5.77 |
6.22 |
Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm |
300M |
17.72 |
23.30 |
6.78 |
7.67 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm |
1000M |
20.34 |
16.67 |
6.97 |
6.35 |
Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2 |
1000M |
12.11 |
14.89 |
5.65 |
6.06 |
团队成员
欢迎联系我们获取更多信息! 🤗