File size: 4,471 Bytes
3e08670
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/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())