test / setup_project.py
Ronaldo
first commit
3e08670
#!/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())