|
--- |
|
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. |