# 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 : ```sh pip install -r requirements.txt ``` - Configurer le fichier `.env` avec 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 ```sh python start_services.py ``` Ce script lance tous les services backend (API principale, TTS, STT, streaming...). ### Démarrage manuel de l’API FastAPI ```sh 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 `.env` et ne le partagez pas publiquement. - Consultez et adaptez `lipsync_config.yaml` selon 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.