diff --git a/rvs/server.js b/rvs/server.js index 255ca7b..d55d74d 100644 --- a/rvs/server.js +++ b/rvs/server.js @@ -54,7 +54,10 @@ function cleanupRooms() { // ── WebSocket-Server starten ──────────────────────────────────────── -const wss = new WebSocketServer({ port: PORT }); +// maxPayload 50MB: TTS-Streaming + Voice-Upload (WAV als base64) + +// audio_pcm Chunks koennen die ws-Library Default 1MB ueberschreiten. +// Default-Limit war der Killer fuer die voice_upload Pipeline. +const wss = new WebSocketServer({ port: PORT, maxPayload: 50 * 1024 * 1024 }); wss.on("listening", () => { log(`RVS läuft auf Port ${PORT} | Max Sessions: ${MAX_SESSIONS}`); diff --git a/xtts/whisper/bridge.py b/xtts/whisper/bridge.py index e44022f..90b38f0 100644 --- a/xtts/whisper/bridge.py +++ b/xtts/whisper/bridge.py @@ -212,7 +212,10 @@ async def run_loop(runner: WhisperRunner) -> None: masked = url.replace(RVS_TOKEN, "***") if RVS_TOKEN else url try: logger.info("Verbinde zu RVS: %s", masked) - async with websockets.connect(url, ping_interval=20, ping_timeout=10) as ws: + # max_size 50MB damit grosse stt_request (Voice-Cloning-WAVs als + # base64 koennen mehrere MB werden) nicht das Frame-Limit sprengen + # und die Verbindung mit 1009 'message too big' killen. + async with websockets.connect(url, ping_interval=20, ping_timeout=10, max_size=50 * 1024 * 1024) as ws: logger.info("RVS verbunden") retry_s = 2 tls_fallback_tried = False