🚀 Wav2Vec2 XLS-R 用於芬蘭語自動語音識別
該聲學模型是 facebook/wav2vec2-xls-r-1b 針對芬蘭語自動語音識別(ASR)的微調版本。該模型使用了 259.57 小時的芬蘭語轉錄語音數據進行微調。Wav2Vec2 XLS-R 首次在 這篇論文 中被提出,並在 此頁面 首次發佈。
本倉庫還包含了在解碼階段與聲學模型一起使用的芬蘭語 KenLM 語言模型。
注意:此模型與 Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm 模型完全相同,只是將其複製/移動到了 Finnish-NLP
Hugging Face 組織中。
注意:該模型有一個更好的 V2 版本,它使用了多 16 小時的數據進行了更長時間的微調:Finnish-NLP/wav2vec2-xlsr-1b-finnish-lm-v2
✨ 主要特性
- 基於
facebook/wav2vec2-xls-r-1b
模型針對芬蘭語自動語音識別進行微調。
- 微調使用了 259.57 小時的芬蘭語轉錄語音數據。
- 倉庫包含解碼階段使用的芬蘭語 KenLM 語言模型。
📦 安裝指南
文檔未提及安裝步驟,暫不提供。
💻 使用示例
基礎用法
查看本倉庫中的 run-finnish-asr-models.ipynb 筆記本,以獲取如何使用此模型的詳細示例。
📚 詳細文檔
模型描述
Wav2Vec2 XLS-R 是 Facebook AI 開發的用於語音的大規模多語言預訓練模型。它在 436000 小時的無標籤語音數據上進行了預訓練,這些數據包括 VoxPopuli、MLS、CommonVoice、BABEL 和 VoxLingua107。該模型使用 wav2vec 2.0 目標函數,支持 128 種語言。
你可以從 這篇博客 和 這篇論文 中瞭解更多關於該預訓練模型的信息。
此模型是預訓練模型(10 億參數變體)針對芬蘭語自動語音識別的微調版本。
預期用途和侷限性
如何使用
查看本倉庫中的 run-finnish-asr-models.ipynb 筆記本,以獲取如何使用此模型的詳細示例。
侷限性和偏差
- 該模型使用的音頻樣本最大長度為 20 秒,因此該模型很可能最適用於類似長度的較短音頻。不過,你也可以嘗試使用更長的音頻,看看效果如何。如果你在處理非常長的音頻文件時遇到內存不足的錯誤,可以使用 這篇博客文章 中介紹的音頻分塊方法。
- 用於微調的絕大部分數據來自芬蘭議會數據集,因此該模型可能無法很好地泛化到非常不同的領域,例如帶有方言的日常芬蘭語口語等。此外,數據集中的音頻往往以成年男性為主,因此該模型可能對兒童和女性的語音效果不佳。
- 解碼階段使用的芬蘭語 KenLM 語言模型是使用音頻轉錄的文本數據進行訓練的。因此,解碼器的語言模型可能無法很好地泛化到非常不同的語言,例如帶有方言的日常口語。訓練自己的 KenLM 語言模型用於特定領域的語言可能會更有幫助。
訓練數據
該模型使用了來自以下數據集的 259.57 小時芬蘭語轉錄語音數據進行微調:
數據集經過篩選,只包含最大長度為 20 秒的音頻樣本。
訓練過程
該模型是在 Hugging Face 組織的 穩健語音挑戰活動 期間進行訓練的。訓練在 OVHcloud 贊助的 Tesla V100 GPU 上進行。
訓練腳本由 Hugging Face 提供,可在 此處 獲取。我們僅修改了其數據加載部分以適應我們的自定義數據集。
對於 KenLM 語言模型的訓練,我們遵循了 Hugging Face 提供的 博客文章教程。5 元 KenLM 的訓練數據是音頻訓練數據的文本轉錄。
訓練超參數
訓練期間使用了以下超參數:
- 學習率:5e-05
- 訓練批次大小:32
- 評估批次大小:8
- 隨機種子:42
- 優化器:8 位 Adam,β=(0.9, 0.999),ε=1e-08
- 學習率調度器類型:線性
- 學習率調度器熱身步數:500
- 訓練輪數:5
- 混合精度訓練:原生 AMP
預訓練的 facebook/wav2vec2-xls-r-1b
模型使用以下超參數進行初始化:
- 注意力丟棄率:0.094
- 隱藏層丟棄率:0.047
- 特徵投影丟棄率:0.04
- 掩碼時間概率:0.082
- 層丟棄率:0.041
- 激活丟棄率:0.055
- CTC 損失縮減方式:"mean"
訓練結果
訓練損失 |
輪數 |
步數 |
驗證損失 |
字錯誤率 (WER) |
0.968 |
0.18 |
500 |
0.4870 |
0.4720 |
0.6557 |
0.36 |
1000 |
0.2450 |
0.2931 |
0.647 |
0.54 |
1500 |
0.1818 |
0.2255 |
0.5297 |
0.72 |
2000 |
0.1698 |
0.2354 |
0.5802 |
0.9 |
2500 |
0.1581 |
0.2355 |
0.6351 |
1.07 |
3000 |
0.1689 |
0.2336 |
0.4626 |
1.25 |
3500 |
0.1719 |
0.3099 |
0.4526 |
1.43 |
4000 |
0.1434 |
0.2069 |
0.4692 |
1.61 |
4500 |
0.1645 |
0.2192 |
0.4584 |
1.79 |
5000 |
0.1483 |
0.1987 |
0.4234 |
1.97 |
5500 |
0.1499 |
0.2178 |
0.4243 |
2.15 |
6000 |
0.1345 |
0.2070 |
0.4108 |
2.33 |
6500 |
0.1383 |
0.1850 |
0.4048 |
2.51 |
7000 |
0.1338 |
0.1811 |
0.4085 |
2.69 |
7500 |
0.1290 |
0.1780 |
0.4026 |
2.87 |
8000 |
0.1239 |
0.1650 |
0.4033 |
3.04 |
8500 |
0.1346 |
0.1657 |
0.3986 |
3.22 |
9000 |
0.1310 |
0.1850 |
0.3867 |
3.4 |
9500 |
0.1273 |
0.1741 |
0.3658 |
3.58 |
10000 |
0.1219 |
0.1672 |
0.382 |
3.76 |
10500 |
0.1306 |
0.1698 |
0.3847 |
3.94 |
11000 |
0.1230 |
0.1577 |
0.3691 |
4.12 |
11500 |
0.1310 |
0.1615 |
0.3593 |
4.3 |
12000 |
0.1296 |
0.1622 |
0.3619 |
4.48 |
12500 |
0.1285 |
0.1601 |
0.3361 |
4.66 |
13000 |
0.1261 |
0.1569 |
0.3603 |
4.84 |
13500 |
0.1235 |
0.1533 |
框架版本
- Transformers 4.17.0.dev0
- Pytorch 1.10.2+cu102
- Datasets 1.18.3
- Tokenizers 0.11.0
評估結果
評估使用了 Common Voice 7.0 芬蘭語測試分割。
要評估此模型,請運行本倉庫中的 eval.py
腳本:
python3 eval.py --model_id aapot/wav2vec2-xlsr-1b-finnish-lm --dataset mozilla-foundation/common_voice_7_0 --config fi --split test
與我們的其他模型相比,該模型(表格中的第二行)取得了以下字錯誤率 (WER) 和字符錯誤率 (CER) 結果:
模型名稱 |
帶語言模型的 WER |
不帶語言模型的 WER |
帶語言模型的 CER |
不帶語言模型的 CER |
aapot/wav2vec2-xlsr-1b-finnish-lm-v2 |
4.09 |
9.73 |
0.88 |
1.65 |
aapot/wav2vec2-xlsr-1b-finnish-lm |
5.65 |
13.11 |
1.20 |
2.23 |
aapot/wav2vec2-xlsr-300m-finnish-lm |
8.16 |
17.92 |
1.97 |
3.36 |
🔧 技術細節
文檔中關於技術細節的內容已在上述詳細文檔部分體現。
📄 許可證
本模型採用 Apache-2.0 許可證。
團隊成員
如有更多細節需求,請隨時聯繫我們 🤗