模型概述
模型特點
模型能力
使用案例
🚀 Wav2Vec2 XLS-R用於芬蘭語自動語音識別
該聲學模型是 facebook/wav2vec2-xls-r-300m 針對芬蘭語自動語音識別(ASR)進行微調後的版本。該模型使用了 275.6 小時的芬蘭語轉錄語音數據進行微調。Wav2Vec2 XLS-R 在 這篇論文 中被提出,並首次在 此頁面 發佈。
本倉庫還包含了在解碼階段與聲學模型一起使用的芬蘭語 KenLM 語言模型。
注意:該模型與 Finnish-NLP/wav2vec2-xlsr-300m-finnish-lm 模型完全相同,只是將其複製/移動到了 Finnish-NLP
Hugging Face 組織中。
✨ 主要特性
- 基於預訓練的
facebook/wav2vec2-xls-r-300m
模型進行微調,適用於芬蘭語自動語音識別任務。 - 包含用於解碼階段的芬蘭語 KenLM 語言模型。
📦 安裝指南
文檔未提及安裝步驟,故跳過此章節。
💻 使用示例
文檔未提供代碼示例,故跳過此章節。
📚 詳細文檔
模型描述
Wav2Vec2 XLS-R 是 Facebook AI 推出的大規模多語言語音預訓練模型。它在 436000 小時的無標籤語音數據上進行預訓練,這些數據包括 VoxPopuli、MLS、CommonVoice、BABEL 和 VoxLingua107。該模型使用 wav2vec 2.0 目標函數,支持 128 種語言。
你可以從 這篇博客 和 這篇論文 中瞭解更多關於該預訓練模型的信息。
此模型是預訓練模型(3 億參數變體)針對芬蘭語 ASR 進行微調後的版本。
預期用途與限制
預期用途
你可以使用該模型進行芬蘭語自動語音識別(語音轉文本)任務。
使用方法
查看本倉庫中的 run-finnish-asr-models.ipynb 筆記本,獲取使用該模型的詳細示例。
限制和偏差
- 音頻長度限制:該模型使用的音頻樣本最大長度為 20 秒,因此它最適用於類似長度的較短音頻。不過,你也可以嘗試使用更長的音頻,看看效果如何。如果你在處理非常長的音頻文件時遇到內存不足的錯誤,可以使用 這篇博客文章 中介紹的音頻分塊方法。
- 數據領域限制:用於微調的絕大部分數據來自芬蘭議會數據集,因此該模型可能無法很好地泛化到非常不同的領域,如帶有方言的日常芬蘭語口語等。此外,數據集中的音頻往往以成年男性為主,因此該模型可能對兒童和女性的語音效果不佳。
- 語言模型限制:解碼階段使用的芬蘭語 KenLM 語言模型是使用音頻轉錄文本數據和芬蘭語維基百科的一個子集進行訓練的。因此,解碼器的語言模型可能無法很好地泛化到非常不同的語言,例如帶有方言的日常口語(因為維基百科主要包含正式的芬蘭語)。為你的領域語言訓練自己的 KenLM 語言模型並在解碼中使用可能會更有益。
訓練數據
該模型使用了來自以下數據集的 275.6 小時芬蘭語轉錄語音數據進行微調:
數據集 | 時長 | 佔總時長的百分比 |
---|---|---|
Common Voice 7.0 芬蘭語訓練 + 評估 + 其他分割 | 9.70 小時 | 3.52 % |
芬蘭議會會議 2 | 0.24 小時 | 0.09 % |
VoxPopuli 芬蘭語 | 21.97 小時 | 7.97 % |
CSS10 芬蘭語 | 10.32 小時 | 3.74 % |
阿爾託大學芬蘭議會 ASR 語料庫 | 228.00 小時 | 82.73 % |
芬蘭廣播語料庫 | 5.37 小時 | 1.95 % |
數據集經過篩選,只包含最長 20 秒的音頻樣本。
訓練過程
該模型是在 Hugging Face 組織的 Robust Speech Challenge Event 期間進行訓練的。訓練在由 OVHcloud 贊助的 Tesla V100 GPU 上完成。
訓練腳本由 Hugging Face 提供,可在 此處 獲取。我們僅對其數據加載部分進行了修改,以適應我們的自定義數據集。
對於 KenLM 語言模型的訓練,我們遵循了 Hugging Face 提供的 博客文章教程。5-gram KenLM 的訓練數據包括音頻訓練數據的文本轉錄和 100000 個隨機抽取的清理後的 芬蘭語維基百科(2021 年 8 月)數據集樣本。
訓練超參數
訓練期間使用了以下超參數:
- 學習率:5e-04
- 訓練批次大小:32
- 評估批次大小:32
- 隨機種子:42
- 優化器:8 位 Adam,β=(0.9, 0.999),ε=1e-08
- 學習率調度器類型:線性
- 學習率調度器熱身步數:500
- 訓練輪數:10
- 混合精度訓練:Native AMP
預訓練的 facebook/wav2vec2-xls-r-300m
模型使用以下超參數進行初始化:
- 注意力丟棄率: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.713 | 0.34 | 1000 | 0.3356 | 0.4518 |
0.6563 | 0.5 | 1500 | 0.3007 | 0.4039 |
0.642 | 0.67 | 2000 | 0.2619 | 0.3674 |
0.6203 | 0.84 | 2500 | 0.2488 | 0.3558 |
0.6016 | 1.01 | 3000 | 0.2795 | 0.3835 |
0.5423 | 1.17 | 3500 | 0.2652 | 0.3310 |
0.5639 | 1.34 | 4000 | 0.2479 | 0.3462 |
0.586 | 1.51 | 4500 | 0.2409 | 0.3295 |
0.5169 | 1.68 | 5000 | 0.2728 | 0.3352 |
0.5176 | 1.84 | 5500 | 0.2254 | 0.3149 |
0.4983 | 2.01 | 6000 | 0.2169 | 0.3009 |
0.4982 | 2.18 | 6500 | 0.2215 | 0.3079 |
0.4898 | 2.35 | 7000 | 0.2174 | 0.3023 |
0.4922 | 2.51 | 7500 | 0.2217 | 0.3081 |
0.5025 | 2.68 | 8000 | 0.2002 | 0.2710 |
0.4745 | 2.85 | 8500 | 0.1935 | 0.2783 |
0.4377 | 3.02 | 9000 | 0.1859 | 0.2742 |
0.4511 | 3.18 | 9500 | 0.2038 | 0.2786 |
0.4411 | 3.35 | 10000 | 0.1863 | 0.2651 |
0.4501 | 3.52 | 10500 | 0.1948 | 0.2605 |
0.4557 | 3.69 | 11000 | 0.1872 | 0.2695 |
0.4493 | 3.85 | 11500 | 0.1888 | 0.2632 |
0.4047 | 4.02 | 12000 | 0.1818 | 0.2559 |
0.4319 | 4.19 | 12500 | 0.1896 | 0.2648 |
0.4162 | 4.36 | 13000 | 0.1953 | 0.2595 |
0.4046 | 4.52 | 13500 | 0.1864 | 0.2606 |
0.4195 | 4.69 | 14000 | 0.1843 | 0.2467 |
0.4146 | 4.86 | 14500 | 0.1686 | 0.2450 |
0.378 | 5.03 | 15000 | 0.1731 | 0.2401 |
0.3792 | 5.19 | 15500 | 0.1676 | 0.2325 |
0.3855 | 5.36 | 16000 | 0.1740 | 0.2326 |
0.4029 | 5.53 | 16500 | 0.1674 | 0.2345 |
0.386 | 5.7 | 17000 | 0.1735 | 0.2280 |
0.3811 | 5.86 | 17500 | 0.1692 | 0.2258 |
0.3607 | 6.03 | 18000 | 0.1797 | 0.2279 |
0.3604 | 6.2 | 18500 | 0.1651 | 0.2206 |
0.3362 | 6.37 | 19000 | 0.1627 | 0.2199 |
0.3611 | 6.53 | 19500 | 0.1652 | 0.2172 |
0.3671 | 6.7 | 20000 | 0.1564 | 0.2140 |
0.3769 | 6.87 | 20500 | 0.1525 | 0.2101 |
0.3539 | 7.04 | 21000 | 0.1639 | 0.2096 |
0.3225 | 7.21 | 21500 | 0.1611 | 0.2087 |
0.3323 | 7.37 | 22000 | 0.1633 | 0.2008 |
0.3327 | 7.54 | 22500 | 0.1692 | 0.1975 |
0.3456 | 7.71 | 23000 | 0.1555 | 0.1991 |
0.3058 | 7.88 | 23500 | 0.1590 | 0.1959 |
0.3034 | 8.04 | 24000 | 0.1531 | 0.1973 |
0.2925 | 8.21 | 24500 | 0.1583 | 0.1978 |
0.2967 | 8.38 | 25000 | 0.1546 | 0.1906 |
0.2974 | 8.55 | 25500 | 0.1540 | 0.1869 |
0.3131 | 8.71 | 26000 | 0.1534 | 0.1850 |
0.3306 | 8.88 | 26500 | 0.1482 | 0.1844 |
0.2842 | 9.05 | 27000 | 0.1490 | 0.1854 |
0.2879 | 9.22 | 27500 | 0.1463 | 0.1799 |
0.27 | 9.38 | 28000 | 0.1454 | 0.1798 |
0.2874 | 9.55 | 28500 | 0.1504 | 0.1787 |
0.2757 | 9.72 | 29000 | 0.1512 | 0.1784 |
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 芬蘭語測試分割 對模型進行評估。
要評估該模型,請運行本倉庫中的 eval.py
腳本:
python3 eval.py --model_id aapot/wav2vec2-xlsr-300m-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 |
團隊成員
- Aapo Tanskanen,Hugging Face 個人資料,LinkedIn 個人資料
- Rasmus Toivanen,Hugging Face 個人資料,LinkedIn 個人資料
如有更多詳情,請隨時聯繫我們 🤗
🔧 技術細節
文檔未提供技術實現細節,故跳過此章節。
📄 許可證
該模型採用 Apache 2.0 許可證。



