fix: Voice-Auswahl funktioniert endlich + Diagnostic setzt alle Apps zurueck
XTTS-Bridge: im daswer123 local-Mode erwartet der Server speaker_wav als Basename (z.B. "Maia"), nicht als Pfad. Wir haben bisher "/voices/Maia.wav" geschickt, was der Server stumm verwirft und Default nimmt. Jetzt: speaker name pur senden + Warnlog wenn File fehlt. App: ChatScreen + SettingsScreen horchen auf type "config" vom RVS — wenn in Diagnostic die globale XTTS-Voice gewechselt wird, werden alle Apps auf den neuen Wert zurueckgesetzt (wie vom User gewuenscht). Lokale App-Wahl bleibt sonst intakt und gewinnt pro Request. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+14
-4
@@ -151,8 +151,18 @@ async function _runTTSRequest(payload) {
|
||||
log(`TTS-Request (streaming): "${cleanText.slice(0, 80)}..." (${cleanText.length} chars, voice: ${voice || "default"})`);
|
||||
|
||||
try {
|
||||
const voiceSample = voice ? path.join(VOICES_DIR, `${voice}.wav`) : null;
|
||||
const hasCustomVoice = voiceSample && fs.existsSync(voiceSample);
|
||||
// Im local-Mode erwartet daswer123 XTTS speaker_wav als Basename (ohne .wav,
|
||||
// ohne Pfad) — der Server prefixt EXAMPLE_FOLDER selbst. Wir checken hier
|
||||
// nur das physische File ab um Warnungen zu loggen; runter ans API geht
|
||||
// nur der Name.
|
||||
const voiceFilePath = voice ? path.join(VOICES_DIR, `${voice}.wav`) : null;
|
||||
const hasCustomVoice = voiceFilePath && fs.existsSync(voiceFilePath);
|
||||
const speakerName = hasCustomVoice ? voice : "";
|
||||
if (voice && !hasCustomVoice) {
|
||||
log(`WARNUNG: Voice "${voice}" angefordert, aber ${voiceFilePath} existiert nicht — nehme Default`);
|
||||
} else if (hasCustomVoice) {
|
||||
log(`Voice "${voice}" verwendet (speaker_wav="${speakerName}")`);
|
||||
}
|
||||
|
||||
let chunkIndex = 0;
|
||||
let pcmMeta = null;
|
||||
@@ -190,7 +200,7 @@ async function _runTTSRequest(payload) {
|
||||
await streamXTTSAsPCM(
|
||||
cleanText,
|
||||
language || "de",
|
||||
hasCustomVoice ? voiceSample : null,
|
||||
speakerName,
|
||||
onChunk,
|
||||
);
|
||||
} catch (streamErr) {
|
||||
@@ -198,7 +208,7 @@ async function _runTTSRequest(payload) {
|
||||
await streamXTTSBatch(
|
||||
cleanText,
|
||||
language || "de",
|
||||
hasCustomVoice ? voiceSample : null,
|
||||
speakerName,
|
||||
onChunk,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user