Implémentation d’une architecture RNN pour la transcription syllabique et tonale de la langue Yemba avec une approche Seq2Seq avec GRU et Mécanisme d’Attention
````markdown
# 🔉 Reconnaissance Automatique de la Parole en Yemba (ASR-Yemba)
Ce projet propose une **application de reconnaissance vocale automatique (ASR)** pour la langue **Yemba**, une langue tonale du Cameroun. Il s’appuie sur une architecture **GRU Seq2Seq avec mécanisme d’attention additive**, permettant la transcription syllabique et tonale à partir d’échantillons audio.
## 🧠 Objectif du projet
Développer un modèle capable de transcrire automatiquement les énoncés oraux en Yemba en intégrant :
- La **structure syllabique**
- Les **variations tonales (haut, moyen, bas)**
- Un **vocabulaire personnalisé** issu du corpus *YembaTones*
---
## 🗃️ Données utilisées
Le projet utilise le corpus YembaTones :
- 344 mots en Yemba, enregistrés par 11 locuteurs natifs.
- Fichiers `.wav` + annotations `.TextGrid` (segmentations syllabiques et tons).
- Format unifié de transcription : `syllabe|ton syllabe|ton ...`
---
## 🧱 Architecture du modèle
L’architecture implémentée se compose de :
| Module | Description |
|---------------|-------------|
| `GRUEncoder` | GRU bidirectionnel pour encoder les melspectrogrammes. |
| `Attention` | Mécanisme de Bahdanau pour le focus dynamique. |
| `GRUDecoder` | GRU unidirectionnel pour générer la transcription. |
| `GRUSeq2Seq` | Intégration complète de l’encodeur, attention et décodeur. |
Le modèle final est défini dans `model.py`. Plusieurs variantes sont incluses : BiLSTM-CTC, BiGRU-CTC, CNN-BiLSTM, etc.
---
## 🔁 Pipeline de traitement
1. **Prétraitement audio** (Mono 16kHz) → extraction des **Melspectrogrammes**.
2. **Tokenisation** des transcriptions syllabico-tonales.
3. **Division du jeu de données** (80% train / 10% val / 10% test).
4. **Entraînement** avec `CrossEntropyLoss`, `Teacher Forcing`, et `EarlyStopping`.
5. **Évaluation** avec les métriques :
- WER (Word Error Rate)
- CER (Character Error Rate)
- Précision brute
6. **Déploiement** via interface Gradio.
---
## 💻 Interface Utilisateur
Une appl …