Spaces:
Sleeping
HOLOKIA-AVATAR Backend
Ce dossier contient le backend du projet: il gère la génération de texte IA (LLM), la synthèse vocale (TTS), la reconnaissance vocale (STT), et le streaming audio en temps réel avec Websocket.
Structure du dossier
Back-end/
├── .env # Variables d'environnement (API keys, config)
├── requirements.txt # Dépendances Python
├── start_service.py # Script de lancement des services # Script de démarrage principal
|__ tts_cache # Le cache
├── app/
│ ├── __init__.py
│ └── main.py # API principale FastAPI
├── env/ # Environnement virtuel Python (venv)
├── services/
│ ├── live_stream_service.py
│ ├── llm_service.py
│ ├── stt_service.py
│ ├── tts_service.py
Prérequis
- Python 3.10 ou supérieur
- Installer les dépendances :
pip install -r requirements.txt - Configurer le fichier
.envavec vos clés API et paramètres nécessaires (voir exemple ci-dessous).
Configuration
Exemple de fichier .env :
GROQ_API_KEY=your_groq_api_key
Adaptez les clés et chemins selon votre environnement.
Lancement du backend
Démarrage global
python start_services.py
Ce script lance tous les services backend (API principale, TTS, STT, streaming...).
Démarrage manuel de l’API FastAPI
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Fonctionnalités principales
Reconnaissance vocale (STT)
Endpoint :POST /stt/transcribe
Envoie un fichier audio, reçoit le texte transcrit.Synthèse vocale (TTS)
Endpoint :POST /tts/generate-tts
Envoie du texte, reçoit le chemin du fichier audio généré.Génération de texte IA (LLM)
Endpoint :POST /llm/generate
Envoie un prompt, reçoit la réponse générée.Streaming audio en temps réel
Endpoint :/live_stream/{user_id}
Permet la communication audio temps réel avec le backend.Health check
Endpoint :GET /health
Vérifie l’état du backend.
Dossiers de cache et de test
tts_cache/: fichiers audio générés par le TTS
Bonnes pratiques
- Utilisez l’environnement virtuel fourni (
env/) pour isoler les dépendances. - Protégez votre fichier
.envet ne le partagez pas publiquement. - Consultez et adaptez
lipsync_config.yamlselon vos besoins de synchronisation labiale. - En production, restreignez les origines CORS dans
main.py.
Contribution
Pour toute modification :
- Documentez votre code
- Ajoutez des tests si nécessaire
- Respectez la structure existante
Support
Pour toute question ou problème, Veillez contacter Holokia particuliérement Mr Sinaly ou Mr Omar.