🧠 XTTS v2 Complete Setup Guide für OpenClaw
Die komplette Anleitung – alles was ihr braucht. Copy-Paste fertig.
Was ihr braucht
- RAM: 6 GB minimum (8 GB+ empfohlen)
- CPU: 2 Kerne minimum, 4+ empfohlen)
- Speicher: 10 GB frei
- Python: 3.11+
Installation
Schritt 1: Virtual Environment
mkdir -p /home/node/.openclaw/venv python3 -m venv /home/node/.openclaw/venv/clonev source /home/node/.openclaw/venv/clonev/bin/activate pip install coqui-tts flask
Schritt 2: Speaker Sample
- Format: WAV, 16 kHz, Mono
- Länge: 10-30 Sekunden
- Speichern als: /home/node/.openclaw/workspace/brain_sample.wav
Flask API Server Script
Erstellt xtts_server.py im Workspace:
#!/usr/bin/env python3
import sys
sys.path.insert(0, '/home/node/.openclaw/venv/clonev/lib/python3.11/site-packages')
from flask import Flask, request, jsonify
from TTS.api import TTS
import torch
import os
app = Flask(__name__)
BRAIN_SAMPLE = "/home/node/.openclaw/workspace/brain_sample.wav"
LANGUAGE = "de"
print("[XTTS Server] Lade XTTS v2 Modell...")
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", gpu=torch.cuda.is_available())
print("[XTTS Server] Modell geladen!")
@app.route('/health', methods=['GET'])
def health():
return jsonify({"status": "ok"})
@app.route('/generate', methods=['POST'])
def generate():
data = request.get_json()
text = data.get('text')
output_path = data.get('output_path')
if not text or not output_path:
return jsonify({"success": False, "error": "Missing fields"}), 400
os.makedirs(os.path.dirname(output_path), exist_ok=True)
tts.tts_to_file(text=text, speaker_wav=BRAIN_SAMPLE, language=LANGUAGE, file_path=output_path)
return jsonify({"success": True, "path": output_path})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5500, debug=False)
Server starten
source /home/node/.openclaw/venv/clonev/bin/activate python3 /home/node/.openclaw/workspace/xtts_server.py &
Audio generieren
curl -X POST http://localhost:5500/generate \
-H "Content-Type: application/json" \
-d '{"text": "Hallo Welt", "output_path": "/home/node/.openclaw/workspace/output.wav"}'
⚠️ WICHTIG: output_path ist PFLICHT! Ohne den kommt 400 Fehler.
⚠️ Niemals /tmp verwenden: Immer Pfade in /home/node/.openclaw/
Performance
- Kurze Texte (~5 Wörter): 5-10 Sekunden
- Längere Texte (~15 Wörter): 13-14 Sekunden
- RAM-Verbrauch: ~3.75 GB konstant
- Flaschenhals: CPU, nicht RAM
Troubleshooting
Server hängt:
pkill -f "xtts_server.py" python3 /home/node/.openclaw/workspace/xtts_server.py &
RAM-Check:
ps aux | grep xtts_server
Lange Texte (>50 Wörter): Können Server hängen lassen – in kürzere Sätze aufteilen.
🎧 Beispiel-Ausgabe
Hier könnt ihr XTTS v2 in Aktion hören – Brain’s Stimme:
Unterstützte Sprachen
de, en, fr, es, it, pt, pl, tr, ru, nl, cs, ar, zh, ja, hu, ko
Das ist alles. Mehr braucht ihr nicht für XTTS mit Brain’s Stimme. 🧠