File size: 3,709 Bytes
f806c40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
---
license: mit
datasets:
- galsenai/wolof_tts
language:
- wo
metrics:
- accuracy
base_model:
- openai/whisper-small
pipeline_tag: audio-text-to-text
---

# **Whisper for Wolof ASR**  

Ce dépôt contient une version fine-tunée du modèle Whisper pour la reconnaissance vocale automatique (ASR) en **Wolof**, une langue parlée principalement au Sénégal, en Gambie, et en Mauritanie. Ce modèle utilise l'architecture Whisper, conçue pour les tâches de transcription vocale et de génération conditionnelle.  

---

## **Caractéristiques principales**  

- **Architecture basée sur Whisper**  
  - Encodeur et décodeur composés de 12 couches chacun.  
  - Utilisation d'une attention multi-tête optimisée (`WhisperSdpaAttention`).  
  - Gestion d'un vocabulaire étendu de 51 865 tokens pour une grande diversité linguistique.  

- **Optimisation pour le Wolof**  
  - Fine-tuning effectué sur un corpus spécifique en Wolof.  
  - Capable de transcrire des échantillons audio en texte avec un **Word Error Rate (WER)** compétitif.  

- **Exemples d'application**  
  - Transcription audio de conversations en Wolof.  
  - Utilisation dans des contextes académiques, éducatifs et de recherche linguistique.  

---

## **Performances**  

- **WER moyen** : **12%**  
- **WER sur des échantillons bruyants** : **15%**  
- Évaluations basées sur des données de test spécifiques au Wolof.  

---

## **Exemple d'utilisation**

Voici un exemple simple pour utiliser le modèle avec la bibliothèque Hugging Face Transformers :  

```python
from transformers import WhisperForConditionalGeneration, WhisperProcessor
import torch

# Charger le modèle et le processeur
model = WhisperForConditionalGeneration.from_pretrained("votre-nom-dépôt")
processor = WhisperProcessor.from_pretrained("votre-nom-dépôt")

# Prétraiter l'audio (spectrogramme ou entrée audio bruite)
audio_input = ...  # Charger un spectrogramme ou des données audio prétraitées
inputs = processor(audio_input, return_tensors="pt").input_features

# Générer la transcription
predicted_ids = model.generate(inputs)
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)

print("Transcription :", transcription)
```

---

## **Guide d'installation**  

1. Clonez ce dépôt :  
   ```bash
   git clone https://huggingface.co/dofbi/wolof-asr
   cd votre-dépôt
   ```  

2. Installez les dépendances :  
   ```bash
   pip install transformers torch torchaudio
   ```

3. Testez un exemple avec un fichier audio :  
   ```python
   python app.py --audio_file chemin/vers/audio.wav
   ```  

---

## **Fine-tuning du modèle**  

Si vous souhaitez adapter ce modèle à vos propres données, voici les étapes principales :  

1. Préparez vos données sous forme d'échantillons audio et de transcriptions textuelles.  
2. Utilisez le script de fine-tuning fourni (voir `src/trainer.py`) avec vos données :  
   ```bash
   python src/trainer.py --train_data chemin/vers/données_train.json --val_data chemin/vers/données_val.json
   ```  

3. Sauvegardez le modèle fine-tuné et chargez-le comme montré dans les exemples ci-dessus.  

---

## **À propos**  

Ce modèle a été développé dans le cadre d'un projet visant à promouvoir la reconnaissance vocale pour les langues sous-représentées comme le Wolof. N'hésitez pas à contribuer, signaler des problèmes, ou proposer des améliorations via les issues de ce dépôt.  

---

## **Licence**  

Ce modèle est publié sous la licence MIT. Consultez le fichier `LICENSE` pour plus de détails.  

---

Enrichissez-le davantage si vous ajoutez de nouvelles fonctionnalités, comme des tests ou des scripts complémentaires.