feat(diagnostic): Speed-Slider im Voice-Preview-Modal (nicht persistiert)
Neue −0.1 / +0.1 Buttons im Preview-Modal mit aktuellem Wert-Label. Bei jedem Oeffnen wird der Speed auf 1.0 zurueckgesetzt (bewusst kein persist — nur zum Experimentieren waehrend das Modal offen ist). - Range 0.1-5.0, gleiche wie in App-Settings - Wird beim Play an f5tts-bridge als speed-Param mitgegeben - Server clampt auf 0.1-5.0, Fallback 1.0 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1469,7 +1469,7 @@ wss.on("connection", (ws) => {
|
||||
} else if (msg.action === "test_tts") {
|
||||
handleTestTTS(ws, msg.text || "Test");
|
||||
} else if (msg.action === "preview_voice") {
|
||||
handleVoicePreview(ws, msg.voice || "", msg.text || "Hallo.");
|
||||
handleVoicePreview(ws, msg.voice || "", msg.text || "Hallo.", msg.speed);
|
||||
} else if (msg.action === "check_tts") {
|
||||
handleCheckTTS(ws);
|
||||
} else if (msg.action === "check_desktop") {
|
||||
@@ -1704,8 +1704,11 @@ function _handlePreviewChunk(payload) {
|
||||
}
|
||||
}
|
||||
|
||||
async function handleVoicePreview(clientWs, voice, text) {
|
||||
async function handleVoicePreview(clientWs, voice, text, speed) {
|
||||
try {
|
||||
// Speed clampen — Browser-Slider ist 0.1-5.0
|
||||
let spd = parseFloat(speed);
|
||||
if (!isFinite(spd) || spd < 0.1 || spd > 5.0) spd = 1.0;
|
||||
const requestId = crypto.randomUUID();
|
||||
_previewPending.set(requestId, { clientWs, chunks: [], sampleRate: 0, channels: 0 });
|
||||
// Timeout safety net
|
||||
@@ -1720,10 +1723,10 @@ async function handleVoicePreview(clientWs, voice, text) {
|
||||
}
|
||||
}
|
||||
}, 60000);
|
||||
log("info", "server", `Voice-Preview: voice="${voice}" text="${text.slice(0, 60)}"`);
|
||||
log("info", "server", `Voice-Preview: voice="${voice}" speed=${spd.toFixed(1)}x text="${text.slice(0, 60)}"`);
|
||||
sendToRVS_raw({
|
||||
type: "xtts_request",
|
||||
payload: { text, language: "de", requestId, voice, speed: 1.0 },
|
||||
payload: { text, language: "de", requestId, voice, speed: spd },
|
||||
timestamp: Date.now(),
|
||||
});
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user