fix: stream_chunk_size auf 250 erhoeht — weniger Render-Artefakte

XTTS daswer123 erzeugt an Chunk-Grenzen oft Glitches in den Worten
die ueber die Grenze gehen. 100 → 250 = weniger Grenzen pro Satz =
sauberere Sprachausgabe. Erste-Audio-Latenz steigt um ein paar Sekunden,
was aber OK ist seit die App Pre-Roll gepuffert ist.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
duffyduck 2026-04-22 18:56:00 +02:00
parent bbbe69d928
commit 32ddac002f
1 changed files with 4 additions and 5 deletions

View File

@ -216,15 +216,14 @@ function streamXTTSAsPCM(text, language, speakerWav, onPcmChunk) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// Wichtig: speaker_wav MUSS als Query-Key dabei sein (Pydantic required) — // Wichtig: speaker_wav MUSS als Query-Key dabei sein (Pydantic required) —
// auch bei default-voice mit leerem Wert. Sonst gibt's HTTP 422. // auch bei default-voice mit leerem Wert. Sonst gibt's HTTP 422.
// stream_chunk_size=100: Kompromiss zwischen first-audio-latency und // stream_chunk_size=250: grosse Chunks = wenige Chunk-Grenzen = wenig
// gap-risk. Bei RTX 3060 (RTF 1.48) ~3s bis erster Audio, Chunks gross // Render-Artefakte. daswer123 erzeugt an Chunk-Boundaries haeufig Glitches
// genug dass der AudioTrack-Buffer (128KB ≈ 2.7s) zwischen Chunks nicht // in den Worten die ueber die Grenze gehen. Hoehere Latenz ist OK.
// leerlauft.
const qs = new URLSearchParams(); const qs = new URLSearchParams();
qs.set("text", text); qs.set("text", text);
qs.set("language", language || "de"); qs.set("language", language || "de");
qs.set("speaker_wav", speakerWav || ""); qs.set("speaker_wav", speakerWav || "");
qs.set("stream_chunk_size", "100"); qs.set("stream_chunk_size", "250");
const url = new URL(XTTS_API_URL); const url = new URL(XTTS_API_URL);
const fullPath = `/tts_stream?${qs.toString()}`; const fullPath = `/tts_stream?${qs.toString()}`;