diff --git a/src/db-migrate.js b/src/db-migrate.js index ce73df6..1c8cdf0 100644 --- a/src/db-migrate.js +++ b/src/db-migrate.js @@ -599,9 +599,16 @@ async function migrate() { INSERT INTO tts_settings (language, voice_id) VALUES ('de', 'rKiu7lQ4c5P3az3745s3'), ('en', 'cVd39cx0VtXNC13y5Y7z'), - ('sv', 'XXCqsM8I9KhqA7jLGj1U') + ('sv', 'XB0fDUnXU5powFXDhCwa') ON CONFLICT (language) DO NOTHING `).catch(() => {}); + // Defekte sv-Seed-Voice ersetzen: 'XXCqsM8I9KhqA7jLGj1U' existiert bei ElevenLabs nicht + // (voice_not_found) — dadurch schlug jede schwedische Audio-Generierung fehl. + // 'XB0fDUnXU5powFXDhCwa' = Premade-Voice "Charlotte" (schwedischer Akzent), in jedem Account verfügbar. + await query(` + UPDATE tts_settings SET voice_id = 'XB0fDUnXU5powFXDhCwa' + WHERE language = 'sv' AND voice_id = 'XXCqsM8I9KhqA7jLGj1U' + `).catch(() => {}); // ── Content-Pipeline: Job-Tracking direkt auf der Picture-Zeile ────────────── await query(`ALTER TABLE pictures ADD COLUMN IF NOT EXISTS pipeline_status TEXT NOT NULL DEFAULT 'none'`).catch(() => {}); diff --git a/src/voices.js b/src/voices.js index 3a0440d..c443eb3 100644 --- a/src/voices.js +++ b/src/voices.js @@ -1,12 +1,15 @@ // Default ElevenLabs voice per language (ISO 639-1 → voice_id). // Configure via env (ELEVENLABS_VOICE_DE/EN/SV). Falls back to a shared multilingual voice. -const FALLBACK_VOICE = process.env.ELEVENLABS_VOICE_DEFAULT || 'XXCqsM8I9KhqA7jLGj1U'; +// 'EXAVITQu4vr4xnSDxMaL' = ElevenLabs-Premade "Sarah" — existiert in jedem Account. +// (Der frühere Default 'XXCqsM8I9KhqA7jLGj1U' lieferte voice_not_found.) +const FALLBACK_VOICE = process.env.ELEVENLABS_VOICE_DEFAULT || 'EXAVITQu4vr4xnSDxMaL'; const VOICES = { de: process.env.ELEVENLABS_VOICE_DE || FALLBACK_VOICE, en: process.env.ELEVENLABS_VOICE_EN || FALLBACK_VOICE, - sv: process.env.ELEVENLABS_VOICE_SV || FALLBACK_VOICE, + // Premade "Charlotte" (schwedischer Akzent) als Default für Schwedisch + sv: process.env.ELEVENLABS_VOICE_SV || 'XB0fDUnXU5powFXDhCwa', }; /** Returns the configured voice_id for a language code (default: fallback voice). */