Spaces:
Running
Running
| #!/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()) | |