fix/feat: XTTS-Voice korrekt persistiert, Loeschen + Voice-per-Request
Bug-Fix: Voice-Auswahl verschwand nach Page-Load - xtts_voices_list Handler rebuildet das Dropdown — vorheriger select.value ging dabei verloren. Jetzt wird der Wert gemerkt und nach Rebuild wiederhergestellt (falls die Stimme noch existiert). Feature: Stimmen loeschen (Diagnostic) - XTTS-Bridge: neuer handleDeleteVoice — entfernt /voices/<name>.wav und schickt aktualisierte Liste per xtts_voices_list - RVS: xtts_delete_voice in ALLOWED_TYPES - Diagnostic Server: Action xtts_delete_voice forwarded via RVS - Diagnostic UI: renderVoiceList zeigt alle Custom-Voices mit X-Button Bei Loeschen der gerade aktiven Stimme: auf Default zuruecksetzen Feature: Voice-per-Request in Bridge - App kann mit jedem Chat ein voice-Feld mitschicken - Bridge merkt sich _next_voice_override, nutzt es fuer die NAECHSTE ARIA-Antwort (einmalig, dann reset) - tts_request (Play-Button) akzeptiert voice im Payload als Override - Fallback: globale xtts_voice aus voice_config.json - So kann jedes Geraet seine eigene Stimme haben ohne den globalen Default zu aendern Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1339,6 +1339,10 @@ wss.on("connection", (ws) => {
|
||||
} else if (msg.action === "xtts_list_voices") {
|
||||
// Frische Verbindung die auf Antwort wartet
|
||||
sendToRVS_withResponse("xtts_list_voices", {}, "xtts_voices_list", ws);
|
||||
} else if (msg.action === "xtts_delete_voice") {
|
||||
// Weiterleiten an XTTS-Bridge, die antwortet mit neuer Liste
|
||||
sendToRVS_raw({ type: "xtts_delete_voice", payload: { name: msg.name }, timestamp: Date.now() });
|
||||
log("info", "server", `Voice-Delete '${msg.name}' an XTTS-Bridge gesendet`);
|
||||
} else if (msg.action === "get_voice_config") {
|
||||
handleGetVoiceConfig(ws);
|
||||
} else if (msg.action === "send_voice_config") {
|
||||
|
||||
Reference in New Issue
Block a user