模型概述
模型特點
模型能力
使用案例
🚀 Wav2Vec2 XLS - R 芬蘭語自動語音識別模型
本聲學模型是 [facebook/wav2vec2 - xls - r - 1b](https://huggingface.co/facebook/wav2vec2 - xls - r - 1b) 針對芬蘭語自動語音識別(ASR)任務的微調版本。該模型使用了 275.6 小時的芬蘭語轉錄語音數據進行微調。Wav2Vec2 XLS - R 在 這篇論文 中被提出,並首次發佈於 [此頁面](https://github.com/pytorch/fairseq/tree/main/examples/wav2vec#wav2vec - 20)。
注意:存在一個在解碼階段使用了 KenLM 語言模型的版本,該版本能生成更好的轉錄結果:[Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm - v2](https://huggingface.co/Finnish - NLP/wav2vec2 - xlsr - 1b - finnish - lm - v2)
✨ 主要特性
- 基於大規模多語言預訓練模型 Wav2Vec2 XLS - R 進行微調,適用於芬蘭語自動語音識別任務。
- 使用了多種芬蘭語語音數據集進行微調,提升模型性能。
📦 安裝指南
文檔中未提及安裝步驟,暫不提供相關內容。
💻 使用示例
文檔中未提供代碼示例,暫不提供相關內容。
📚 詳細文檔
模型描述
Wav2Vec2 XLS - R 是 Facebook AI 開發的大規模多語言語音預訓練模型。它在 436000 小時的無標籤語音數據上進行預訓練,這些數據包括 VoxPopuli、MLS、CommonVoice、BABEL 和 VoxLingua107。該模型使用 wav2vec 2.0 目標函數,支持 128 種語言。
你可以從 [此博客](https://ai.facebook.com/blog/xls - r - self - supervised - speech - processing - for - 128 - languages) 和 這篇論文 中瞭解更多關於該預訓練模型的信息。
本模型是預訓練模型(10 億參數變體)針對芬蘭語 ASR 任務的微調版本。
預期用途與限制
你可以將此模型用於芬蘭語 ASR(語音轉文本)任務。
使用方法
查看本倉庫中的 [run - finnish - asr - models.ipynb](https://huggingface.co/aapot/wav2vec2 - xlsr - 1b - finnish - v2/blob/main/run - finnish - asr - models.ipynb) 筆記本,獲取關於如何使用此模型的詳細示例。
限制與偏差
- 該模型使用的音頻樣本最大長度為 20 秒,因此該模型最適用於類似長度的較短音頻。不過,你也可以嘗試使用更長的音頻,並觀察其效果。如果你在處理非常長的音頻文件時遇到內存不足的錯誤,可以使用 [此博客文章](https://huggingface.co/blog/asr - chunking) 中介紹的音頻分塊方法。
- 用於微調的大部分數據來自芬蘭議會數據集,因此該模型可能無法很好地泛化到非常不同的領域,例如帶有方言的日常芬蘭語口語等。此外,數據集的音頻往往以成年男性為主,因此該模型可能對兒童和女性的語音效果不佳。
訓練數據
本模型使用了來自以下數據集的 275.6 小時芬蘭語轉錄語音數據進行微調:
數據集 | 時長 | 佔總時長的百分比 |
---|---|---|
[Common Voice 7.0 芬蘭語訓練集 + 評估集 + 其他分割集](https://huggingface.co/datasets/mozilla - foundation/common_voice_7_0) | 9.70 小時 | 3.52 % |
芬蘭議會會議 2 | 0.24 小時 | 0.09 % |
VoxPopuli 芬蘭語 | 21.97 小時 | 7.97 % |
CSS10 芬蘭語 | 10.32 小時 | 3.74 % |
[阿爾託大學芬蘭議會 ASR 語料庫](http://urn.fi/urn:nbn:fi:lb - 2021051903) | 228.00 小時 | 82.73 % |
[芬蘭廣播語料庫](http://urn.fi/urn:nbn:fi:lb - 2016042502) | 5.37 小時 | 1.95 % |
數據集經過篩選,只包含最大長度為 20 秒的音頻樣本。
訓練過程
本模型是在 Hugging Face 組織的 [穩健語音挑戰活動](https://discuss.huggingface.co/t/open - to - the - community - robust - speech - recognition - challenge/13614) 期間進行訓練的。訓練在由 OVHcloud 贊助的 Tesla V100 GPU 上完成。
訓練腳本由 Hugging Face 提供,可在 [此處](https://github.com/huggingface/transformers/blob/main/examples/research_projects/robust - speech - event/run_speech_recognition_ctc_bnb.py) 獲取。我們僅針對自定義數據集修改了數據加載部分。
訓練超參數
訓練期間使用了以下超參數:
- 學習率:5e - 05
- 訓練批次大小:32
- 評估批次大小:8
- 隨機種子:42
- 優化器:8 位 Adam,β=(0.9, 0.999),ε = 1e - 08
- 學習率調度器類型:線性
- 學習率調度器熱身步數:500
- 訓練輪數:10
- 混合精度訓練:原生 AMP
預訓練的 facebook/wav2vec2 - xls - r - 1b
模型使用以下超參數進行初始化:
- 注意力丟棄率:0.094
- 隱藏層丟棄率:0.047
- 特徵投影丟棄率:0.04
- 時間掩碼概率:0.082
- 層丟棄率:0.041
- 激活函數丟棄率:0.055
- CTC 損失縮減方式:"mean"
訓練結果
訓練損失 | 輪數 | 步數 | 驗證損失 | 字錯率(WER) |
---|---|---|---|---|
0.7778 | 0.17 | 500 | 0.2851 | 0.3572 |
0.5506 | 0.34 | 1000 | 0.1595 | 0.2130 |
0.6569 | 0.5 | 1500 | 0.1458 | 0.2046 |
0.5997 | 0.67 | 2000 | 0.1374 | 0.1975 |
0.542 | 0.84 | 2500 | 0.1390 | 0.1956 |
0.4815 | 1.01 | 3000 | 0.1266 | 0.1813 |
0.6982 | 1.17 | 3500 | 0.1441 | 0.1965 |
0.4522 | 1.34 | 4000 | 0.1232 | 0.1822 |
0.4655 | 1.51 | 4500 | 0.1209 | 0.1702 |
0.4069 | 1.68 | 5000 | 0.1149 | 0.1688 |
0.4226 | 1.84 | 5500 | 0.1121 | 0.1560 |
0.3993 | 2.01 | 6000 | 0.1091 | 0.1557 |
0.406 | 2.18 | 6500 | 0.1115 | 0.1553 |
0.4098 | 2.35 | 7000 | 0.1144 | 0.1560 |
0.3995 | 2.51 | 7500 | 0.1028 | 0.1476 |
0.4101 | 2.68 | 8000 | 0.1129 | 0.1511 |
0.3636 | 2.85 | 8500 | 0.1025 | 0.1517 |
0.3534 | 3.02 | 9000 | 0.1068 | 0.1480 |
0.3836 | 3.18 | 9500 | 0.1072 | 0.1459 |
0.3531 | 3.35 | 10000 | 0.0928 | 0.1367 |
0.3649 | 3.52 | 10500 | 0.1042 | 0.1426 |
0.3645 | 3.69 | 11000 | 0.0979 | 0.1433 |
0.3685 | 3.85 | 11500 | 0.0947 | 0.1346 |
0.3325 | 4.02 | 12000 | 0.0991 | 0.1352 |
0.3497 | 4.19 | 12500 | 0.0919 | 0.1358 |
0.3303 | 4.36 | 13000 | 0.0888 | 0.1272 |
0.3323 | 4.52 | 13500 | 0.0888 | 0.1277 |
0.3452 | 4.69 | 14000 | 0.0894 | 0.1279 |
0.337 | 4.86 | 14500 | 0.0917 | 0.1289 |
0.3114 | 5.03 | 15000 | 0.0942 | 0.1313 |
0.3099 | 5.19 | 15500 | 0.0902 | 0.1239 |
0.3079 | 5.36 | 16000 | 0.0871 | 0.1256 |
0.3293 | 5.53 | 16500 | 0.0861 | 0.1263 |
0.3123 | 5.7 | 17000 | 0.0876 | 0.1203 |
0.3093 | 5.86 | 17500 | 0.0848 | 0.1226 |
0.2903 | 6.03 | 18000 | 0.0914 | 0.1221 |
0.297 | 6.2 | 18500 | 0.0841 | 0.1185 |
0.2797 | 6.37 | 19000 | 0.0858 | 0.1165 |
0.2878 | 6.53 | 19500 | 0.0874 | 0.1161 |
0.2974 | 6.7 | 20000 | 0.0835 | 0.1173 |
0.3051 | 6.87 | 20500 | 0.0835 | 0.1178 |
0.2941 | 7.04 | 21000 | 0.0852 | 0.1155 |
0.258 | 7.21 | 21500 | 0.0832 | 0.1132 |
0.2778 | 7.37 | 22000 | 0.0829 | 0.1110 |
0.2751 | 7.54 | 22500 | 0.0822 | 0.1069 |
0.2887 | 7.71 | 23000 | 0.0819 | 0.1103 |
0.2509 | 7.88 | 23500 | 0.0787 | 0.1055 |
0.2501 | 8.04 | 24000 | 0.0807 | 0.1076 |
0.2399 | 8.21 | 24500 | 0.0784 | 0.1052 |
0.2539 | 8.38 | 25000 | 0.0772 | 0.1075 |
0.248 | 8.55 | 25500 | 0.0772 | 0.1055 |
0.2689 | 8.71 | 26000 | 0.0763 | 0.1027 |
0.2855 | 8.88 | 26500 | 0.0756 | 0.1035 |
0.2421 | 9.05 | 27000 | 0.0771 | 0.0998 |
0.2497 | 9.22 | 27500 | 0.0756 | 0.0971 |
0.2367 | 9.38 | 28000 | 0.0741 | 0.0974 |
0.2473 | 9.55 | 28500 | 0.0739 | 0.0982 |
0.2396 | 9.72 | 29000 | 0.0756 | 0.0991 |
0.2602 | 9.89 | 29500 | 0.0737 | 0.0975 |
框架版本
- Transformers 4.17.0.dev0
- Pytorch 1.10.2+cu102
- Datasets 1.18.3
- Tokenizers 0.11.0
評估結果
評估使用了 [Common Voice 7.0 芬蘭語測試集](https://huggingface.co/datasets/mozilla - foundation/common_voice_7_0)。
要評估此模型,請運行本倉庫中的 eval.py
腳本:
python3 eval.py --model_id aapot/wav2vec2 - xlsr - 1b - finnish - v2 --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 個人資料,領英個人資料
- Rasmus Toivanen,Hugging Face 個人資料,領英個人資料
如有更多詳情需求,請隨時聯繫我們 🤗
📄 許可證
本項目採用 Apache 2.0 許可證。



