Wav2Vec 2.0 Fine-tuné sur le Français
Modèle de reconnaissance vocale automatique (ASR) basé sur
facebook/wav2vec2-base, fine-tuné sur le subset français de
Multilingual LibriSpeech.
Contexte
Ce modèle a été développé dans le cadre d'un projet académique portant sur la reconnaissance vocale avec le Deep Learning.
Données d'entraînement
- Dataset :
facebook/multilingual_librispeech, subset français - Taille : 450 exemples d'entraînement, 50 de validation
- Durée moyenne : ~12 secondes par exemple
Architecture
- Modèle de base :
facebook/wav2vec2-base - Feature extractor : 7 couches CNN (gelées pendant le fine-tuning)
- Transformer : 12 couches d'attention
- Tête de classification : CTC (Connectionist Temporal Classification)
- Vocabulaire : 44 tokens (caractères français + accents + tokens spéciaux)
Entraînement
| Hyperparamètre | Valeur |
|---|---|
| Learning rate | 1e-4 |
| Batch size | 4 |
| Epochs | 10 |
| Warmup steps | 100 |
| Weight decay | 0.005 |
| Optimiseur | AdamW |
Utilisation
from transformers import Wav2Vec2ForCTC, Wav2Vec2Processor
import torch
import librosa
model = Wav2Vec2ForCTC.from_pretrained("MendasD/wav2vec2-french-finetuned")
processor = Wav2Vec2Processor.from_pretrained("MendasD/wav2vec2-french-finetuned")
audio, sr = librosa.load("audio.wav", sr=16000, mono=True)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
ids = torch.argmax(logits, dim=-1)
transcription = processor.batch_decode(ids)[0]
print(transcription)
Résultats
| Epoch | Training Loss | Validation Loss | WER |
|---|---|---|---|
| 1 | 2.9517 | 2.9142 | 1.000 |
| 2 | 2.9974 | 2.8943 | 1.000 |
| 3 | 2.9788 | 2.8894 | 1.000 |
Limitations
- Entraîné sur un petit subset (500 exemples) — performances limitées
- Optimisé pour le français standard
- Non testé sur des accents régionaux ou du bruit ambiant
Auteur
Projet académique - AS3 Semestre 1, cours Machine Learning