#!/usr/bin/env python3 """ Script de vérification et configuration du projet MMS ASR/TTS """ import os import sys from pathlib import Path def check_files(): """Vérifie que tous les fichiers requis existent""" required_files = [ "app.py", "requirements.txt", "Dockerfile", "README.md", "DEPLOYMENT.md", ] print("📋 Vérification des fichiers...") missing = [] for file in required_files: if Path(file).exists(): print(f" ✅ {file}") else: print(f" ❌ {file} (manquant)") missing.append(file) return len(missing) == 0 def check_dependencies(): """Vérifie les dépendances Python""" print("\n📦 Vérification des dépendances...") required_packages = { "flask": "Flask (API web)", "torch": "PyTorch (ML)", "transformers": "Hugging Face Transformers", "librosa": "Audio processing", } for package, description in required_packages.items(): try: __import__(package) print(f" ✅ {package:15} - {description}") except ImportError: print(f" ❌ {package:15} - {description} (non installé)") def show_quick_start(): """Affiche le guide de démarrage rapide""" print("\n" + "="*60) print("🚀 GUIDE DE DÉMARRAGE RAPIDE") print("="*60) print(""" 1️⃣ Installation des dépendances: pip install -r requirements.txt 2️⃣ Lancement de l'API: python app_v2.py # Ou: bash run.sh 3️⃣ Test des endpoints (dans un autre terminal): python examples.py # Ou avec curl: curl http://localhost:7860/health curl http://localhost:7860/supported-languages curl -X POST -H "Content-Type: application/json" \\ -d '{"text": "Hello", "language": "eng"}' \\ http://localhost:7860/tts --output audio.wav 4️⃣ Déploiement sur Hugging Face Spaces: - Voir DEPLOYMENT.md pour les instructions détaillées 📂 Structure du projet: . ├── app.py # API Flask principale (v1) ├── app_v2.py # API Flask optimisée (v2) ⭐ RECOMMANDÉ ├── requirements.txt # Dépendances ├── Dockerfile # Conteneur Docker ├── docker-compose.yml # Orchestration Docker ├── client.py # Client Python pour tester ├── examples.py # Exemples d'utilisation ├── test_api.py # Tests unitaires ├── run.sh # Script de lancement ├── README.md # Documentation générale └── DEPLOYMENT.md # Guide de déploiement 🔧 Développement: pip install -r requirements-dev.txt pytest test_api.py -v black . flake8 . 📚 Documentation: - App v2 est la version recommandée (meilleure gestion d'erreurs) - Supporte 100+ langues pour l'ASR - Supporte 8 langues pour le TTS - Compatible GPU/CPU - Cache des modèles pour performance 🌐 Endpoints disponibles: GET / → Documentation GET /health → État du service GET /models-info → Infos détaillées GET /supported-languages → Langues supportées POST /asr → Audio → Texte POST /tts → Texte → Audio (retourne WAV) 📊 Langues TTS: - beh (Biali) - bba (Baatombu) - ddn (Dendi) - ewe (Éwé) - gej (Mina) - tbz (Ditammari) - yor (Yoruba) - eng (English) 💡 Tips: - La première requête peut être lente (chargement des modèles) - Utilise GPU pour de meilleures performances - Cache les modèles automatiquement après le chargement - Limite: 30s pour audio ASR, 1000 chars pour TTS """) def main(): """Fonction principale""" print("\n🎯 Configuration du projet MMS ASR/TTS\n") # Vérifie les fichiers files_ok = check_files() # Vérifie les dépendances check_dependencies() # Affiche le guide de démarrage show_quick_start() # Status final print("\n" + "="*60) if files_ok: print("✅ Configuration complète! Prêt à démarrer!") print("="*60) print("\n👉 Prochaine étape: python app_v2.py\n") return 0 else: print("⚠️ Certains fichiers manquent. Vérifie l'installation.") print("="*60) return 1 if __name__ == "__main__": sys.exit(main())