--- title: Meta MMS Speech AI emoji: 🎙️ colorFrom: blue colorTo: green sdk: gradio sdk_version: "4.3.0" python_version: "3.10" app_file: app.py pinned: false license: cc-by-nc-4.0 models: - facebook/mms-1b-all - facebook/mms-tts-yor - facebook/mms-tts-eng - facebook/mms-tts-beh - facebook/mms-tts-ddn tags: - ASR - TTS - Speech - Audio - Multilingual - MMS --- # 🎙️ Meta MMS Speech AI - Gradio Interface Une interface **Gradio** simple et élégante pour: - **ASR** (Automatic Speech Recognition): Convertir l'audio en texte (100+ langues) - **TTS** (Text-to-Speech): Convertir le texte en audio (8 langues) Utilise les modèles Meta MMS: - `facebook/mms-1b-all` pour l'ASR - `facebook/mms-tts-*` pour le TTS ## 🌐 Déploiement en ligne **Accès direct:** [Hugging Face Spaces](https://huggingface.co/spaces) ## 🚀 Installation locale ### Prérequis - Python 3.10+ - (Optionnel) CUDA 11.8+ pour GPU ### Installation ```bash # Clone ou télécharge le repo git clone cd mms-speech # Crée un environnement virtuel python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # Installe les dépendances pip install -r requirements.txt ``` ### Lancement ```bash python app.py ``` L'interface Gradio s'ouvrira automatiquement sur `http://localhost:7860` ## 📱 Interface utilisateur ### Onglet 1: 🔊 ASR (Audio → Texte) - Enregistre ou upload un fichier audio - Choisis la langue - Clique "Transcrire" - Récupère le texte transcrit **Langues supportées:** - English, French, Spanish, German, Portuguese, Arabic, Hindi, Chinese, Japanese, et 90+ autres ### Onglet 2: 📢 TTS (Texte → Audio) - Entre du texte - Choisis la langue - Clique "Générer l'audio" - Écoute ou télécharge l'audio généré **Langues TTS:** - 🇧🇯 Biali (beh) - 🇧🇯 Baatombu (bba) - 🇧🇯 Dendi (ddn) - 🇬🇭 Éwé (ewe) - 🇧🇯 Mina (gej) - 🇧🇯 Ditammari (tbz) - 🇳🇬 Yoruba (yor) - 🇧🇯 Fon (fon) - 🇬🇧 English (eng) ### Onglet 3: ℹ️ À propos Informations sur les modèles et ressources ## 📊 Modèles utilisés ### ASR: facebook/mms-1b-all - **Architecture:** wav2vec2 - **Taille:** 964.8M parameters - **Langues:** 100+ (ISO 639-3) - **Input:** Audio 16kHz mono - **Output:** Texte transcrit ### TTS: facebook/mms-tts-{lang} - **Architecture:** VITS - **Taille:** ~5-10M parameters par langue - **Langues:** 8 - **Input:** Texte (max 1000 chars) - **Output:** Audio WAV 22050Hz ## 💡 Utilisation ### Exemple ASR 1. Clique sur le micro ou "Upload file" 2. Enregistre ou uploader ton audio 3. Sélectionne la langue 4. Clique "Transcrire" ### Exemple TTS 1. Écris "Àbọ̀ wa" (hello en Yoruba) 2. Sélectionne "Yoruba (yor)" 3. Clique "Générer l'audio" 4. Écoute le résultat! ## 🔧 Développement ### Installer les dépendances dev ```bash pip install -r requirements-dev.txt ``` ### Tests ```bash pytest test_api.py -v ``` ### Linting ```bash black app.py flake8 app.py ``` ## 🌐 Déploiement sur Hugging Face Spaces ### 1. Créer un Space - Va sur https://huggingface.co/new-space - Choisis "Gradio" comme SDK - Sélectionne "Blank" comme template ### 2. Cloner le Space ```bash git clone https://huggingface.co/spaces// cd ``` ### 3. Copier les fichiers ```bash cp app.py requirements.txt README.md . ``` ### 4. Push vers Hugging Face ```bash git add . git commit -m "Add MMS Speech AI" git push ``` ### 5. Attendre le déploiement - HF va installer les dépendances (2-5 min) - Télécharger les modèles (5-15 min) - Lancer l'app automatiquement **URL du Space:** `https://huggingface.co/spaces//` ## ⚙️ Configuration ```python SAMPLE_RATE = 16000 # Taux ASR MAX_AUDIO_LENGTH = 30 # Max 30 sec MAX_TEXT_LENGTH = 1000 # Max 1000 chars ``` ## 📈 Performance | Action | Temps | |--------|-------| | Première requête ASR | 2-5 min (chargement) | | Requêtes ASR suivantes | 1-10 sec | | Première requête TTS | 30-60 sec (chargement) | | Requêtes TTS suivantes | 1-5 sec | ## 🐛 Troubleshooting **Q: Les modèles prennent trop de temps à charger** A: C'est normal! Les modèles sont volumineux. La première requête charge le modèle (2-5 min), puis ça devient rapide. **Q: "CUDA out of memory"** A: Réduis `MAX_AUDIO_LENGTH` ou `MAX_TEXT_LENGTH`, ou utilise CPU. **Q: Je ne vois pas mon audio après avoir enregistré** A: Attends que le traitement soit terminé. Gradio affichera le résultat automatiquement. **Q: L'audio généré est muet** A: Vérifie que tu as écrit du texte et choisi une langue correcte. ## 📚 Ressources - [Meta MMS Paper](https://arxiv.org/abs/2305.13516) - [facebook/mms-1b-all](https://huggingface.co/facebook/mms-1b-all) - [facebook/mms-tts](https://huggingface.co/facebook/mms-tts) - [Gradio Documentation](https://www.gradio.app/) - [Hugging Face Spaces](https://huggingface.co/spaces) ## ⚖️ Licence CC-BY-NC-4.0 (même que les modèles Meta MMS) ## 👨‍💻 Auteur Créé avec ❤️ pour explorer la synthèse et reconnaissance vocale multilingue. --- **Happy speaking! 🎙️**