# XTTS2 OpenAI-Compatible TTS Server High-Performance Text-to-Speech Platform with FastAPI, Redis Queueing, GPU Workers & OpenAI Speech API Compatibility. --- ## πŸ”₯ Übersicht Dieses Projekt stellt eine vollstΓ€ndig modulare, skalierbare und produktionsreife lokale Text-to-Speech-Plattform bereit. Die API ist vollstΓ€ndig kompatibel zur **OpenAI Speech API**, unterstΓΌtzt **XTTS2 Zero-Shot Voice Cloning**, mehrere Audioformate und verteilte GPU-Worker. Zielsetzung: * Hochqualitative TTS-Synthese fΓΌr Spiele, Voice-Overs und AI-Produktion * Zero-Shot Voice Cloning mit XTTS2 * OpenAI-kompatible Endpoints als Drop-in Replacement * Skalierbare Worker-Architektur fΓΌr hohe Lasten --- ## 🧱 Architektur ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ FastAPI Gateway │◀─────── Redis Queue + Cache β”‚ β”‚ - OpenAI API β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ - Rate Limits β”‚ β”‚ - Port Auto-Select β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ - Voice Registry │──────▢│ Worker (XTTS2) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ - GPU/CPU Auto Detect β”‚ β”‚ - Zero-Shot Voice Cloning β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## πŸš€ Features ### Core Features * OpenAI-kompatible Speech API * Zero-Shot Voice Cloning mit XTTS2 * UnterstΓΌtzung fΓΌr `wav`, `mp3`, `ogg` * Dynamische Portwahl (8000–8100) mit Fallback * Registry fΓΌr permanente Stimmen * Queue-basierte Worker-Architektur (Redis) * GPU Auto-Detection fΓΌr Worker ### Deployment Features * Multi-Stage Docker Images (Gateway & Worker) * Makefile PRO fΓΌr Build, Deploy, Scaling & Testing * Logs + Portfile + Healthchecks * Lazy Load der XTTS2-Modelle --- ## πŸ“¦ Installation ### Voraussetzungen * Docker & Docker Compose * NVIDIA Container Runtime (fΓΌr GPU-Worker) * Linux oder macOS (Windows WSL2 mΓΆglich) ### Start in 3 Schritten ```bash make build make up make status ``` Die dynamische Portwahl speichert den genutzten Port in: ``` gateway/port.txt gateway/logs/gateway.log ``` --- ## πŸ“‘ OpenAI-kompatible Endpunkte ### POST /v1/audio/speech Request Beispiel: ```json { "model": "xtts-v2", "input": "Hello, hero", "voice": "auto", "format": "wav" } ``` Antwort: * binares Audio * Content-Type abhΓ€ngig vom Format ### POST /v1/voices/register * Registriert permanente Stimmen * UnterstΓΌtzt Samples per URL oder Base64 ### GET /health * Healthcheck fΓΌr Monitoring & CI --- ## πŸ§ͺ Selftest ```bash make selftest ``` PrΓΌft: * Redis erreichbar * Gateway erreichbar * Worker zieht Jobs * Mini-Synthese erfolgreich --- ## πŸ“ Projektstruktur ``` project/ β”œβ”€β”€ gateway/ β”‚ β”œβ”€β”€ main.py β”‚ β”œβ”€β”€ api/ β”‚ β”œβ”€β”€ core/ β”‚ β”œβ”€β”€ voices/ β”‚ β”œβ”€β”€ logs/ β”‚ └── Dockerfile β”‚ β”œβ”€β”€ worker/ β”‚ β”œβ”€β”€ main.py β”‚ β”œβ”€β”€ engine/ β”‚ β”œβ”€β”€ core/ β”‚ └── Dockerfile β”‚ β”œβ”€β”€ scripts/ β”‚ └── find_port.py β”‚ β”œβ”€β”€ Makefile β”œβ”€β”€ docker-compose.yml └── README.md ``` --- ## πŸ” Sicherheit & Best Practices * Optional: API Keys fΓΌr ΓΆffentliche Deployments * Rate Limits im Gateway aktivierbar * HTTPS ΓΌber Reverse Proxy * Keine sensiblen Voice-Daten einchecken * Worker nur intern erreichbar halten --- ## πŸ›  Roadmap * Prometheus & Grafana Monitoring * Business-Level Logging (JSON Logs) * Support fΓΌr weitere Modelle (F5, Kokoro, Piper) * WebSocket Realtime TTS Output --- ## πŸ§‘β€πŸ’» Maintainer **Stephan W.** – Architektur & Betrieb ```} ```