Spaces:
Sleeping
Sleeping
File size: 4,520 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 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | # Guide de déploiement sur Hugging Face Spaces
## Prérequis
- Compte Hugging Face: https://huggingface.co
- Git installé localement
- Token HF avec permissions write (https://huggingface.co/settings/tokens)
## Étapes de déploiement
### 1. Créer un Space sur Hugging Face
```bash
# Visite https://huggingface.co/new-space
# - Remplis le formulaire:
# - Name: mms-asr-tts (ou autre nom)
# - License: OpenRAIL (ou CC-BY-NC-4.0 pour correspondre à Meta)
# - Space SDK: Docker
# - Clique "Create Space"
```
### 2. Cloner le Space
```bash
git clone https://huggingface.co/spaces/<username>/<space-name>
cd <space-name>
```
### 3. Copier les fichiers du projet
```bash
# Depuis le répertoire du projet
cp app_v2.py app.py
cp requirements.txt .
cp Dockerfile .
cp README.md .
cp .gitignore .
cp examples.py .
cp client.py .
```
### 4. Configurer le fichier de révision de Hugging Face
Crée `README_SPACE.md` avec les métadonnées:
```yaml
---
title: Meta MMS ASR/TTS
description: API multilingue pour reconnaissance vocale et synthèse vocale
sdk: docker
pinned: false
app_port: 7860
models:
- facebook/mms-1b-all
- facebook/mms-tts-eng
- facebook/mms-tts-yor
- facebook/mms-tts-beh
- facebook/mms-tts-ddn
- facebook/mms-tts-ewe
- facebook/mms-tts-gej
- facebook/mms-tts-tbz
- facebook/mms-tts-bba
tags:
- ASR
- TTS
- Speech
- Audio
- Multilingual
- MMS
---
```
### 5. Pousser vers Hugging Face
```bash
# Configure Git si nécessaire
git config user.email "email@example.com"
git config user.name "Your Name"
# Ajoute et pousse
git add .
git commit -m "Initial commit: Meta MMS ASR/TTS API"
git push
```
### 6. Attendre le déploiement
Le Space se construira automatiquement (5-15 minutes). Pendant ce temps:
- Les dépendances seront installées
- Les modèles seront téléchargés (peut prendre du temps)
- L'application sera lancée
### 7. Tester le Space
```bash
# Accède à: https://huggingface.co/spaces/<username>/<space-name>
# Teste les endpoints:
# - GET / → Documentation
# - GET /health → État
# - POST /tts → Teste avec du texte en Yoruba/autres langues
```
## Troubleshooting
### Erreur: "Model not found"
Solution: Les modèles peuvent prendre du temps à télécharger. Attends 5-10 minutes et réessaie.
### Erreur: "CUDA out of memory"
Solution:
- Réduis MAX_AUDIO_LENGTH ou MAX_TEXT_LENGTH
- Utilise CPU au lieu du GPU
- Ajoute à requirements.txt: `transformers[deepspeed]`
### Erreur: "Port already in use"
Solution: Le port 7860 est utilisé par défaut sur HF Spaces. Vérifier `app_port` dans README.md
## Optimisation pour Production
### Augmenter les ressources
Modifie le `docker-compose.yml`:
```yaml
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 4G
devices:
- driver: nvidia
count: 1 # GPU
capabilities: [gpu]
```
### Ajouter du caching
Modifie le Dockerfile pour persister les modèles:
```dockerfile
ENV HF_HOME=/app/hf_cache
ENV TORCH_HOME=/app/torch_cache
```
### Ajouter de l'authentification
Pour limiter l'accès:
```python
from functools import wraps
from flask import request
def require_token(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.headers.get('Authorization', '').replace('Bearer ', '')
if token != os.getenv('API_TOKEN'):
return {'error': 'Unauthorized'}, 401
return f(*args, **kwargs)
return decorated
@app.route('/tts', methods=['POST'])
@require_token
def tts():
# ...
```
## Monitoring
### Logs
Accède aux logs du Space:
- https://huggingface.co/spaces/<username>/<space-name>/logs
### Métriques
Ajoute à `app.py`:
```python
from prometheus_client import Counter, Histogram
requests_total = Counter('requests_total', 'Total requests', ['method', 'endpoint'])
request_duration = Histogram('request_duration_seconds', 'Request duration', ['endpoint'])
```
## Coûts
- **Gratuit**: Un Space gratuit avec ressources limitées (2-4GB RAM, pas de GPU)
- **Libre** (avec GPU): Nécessite un Space payant (~$5-20/mois selon GPU)
## Support
Pour les problèmes:
1. Vérifie les logs: https://huggingface.co/spaces/<username>/<space-name>/logs
2. Consulte la doc: https://huggingface.co/docs/hub/spaces
3. Pose une question: https://discuss.huggingface.co
## Prochaines étapes
1. ✅ Déploie d'abord sur HF Spaces
2. Teste tous les endpoints
3. Collecte du feedback
4. Ajoute des fonctionnalités (streaming, batch processing, etc.)
|