Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 32ddac002f |
+4
-5
@@ -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()}`;
|
||||||
|
|||||||
Reference in New Issue
Block a user