585 KiB
585 KiB
Changelog
All notable changes to TTS Voice Creator — Clone and Design are documented here.
Follows Keep a Changelog · versioned with Semantic Versioning.
Unreleased
Added
- Seed Finder: Auto-pick best.
POST /api/seed-autopick {voice, text, seeds|count}(default 8, max 16) generates candidates sequentially through the existing temporary-voice path (voices.json is always restored), scores each 0-100 (ASR word accuracy, loudness/clipping,audio_problems) and returns all sub-scores plus the winner. Degrades to loudness/problems when STT is unavailable. The UI highlights the winner; saving stays a click on "Use seed". Tests:tests/test_seed_autopick.py,tests/seed-autopick.spec.js. - Voice Design: attribute chips. Toggle chips (gender, age, pitch, pace, accent/region, tone/timbre, emotion; German + English labels) above the design prompt add or remove only their own phrase in the free-text description. The textarea stays fully free-form. Test:
tests/design-chips.spec.js. - Voice health: timestamped audio problems.
core.audio.audio_problemsflags long interior silence, clipping and sudden level jumps (problemslist withkind,start_s,end_s,detail, plus one warning per kind) in the route-test voice health; existing keys unchanged. Computed on demand and cached by file mtime, not in the voice list. Shown in the routing test result and in the Try-out voice panel (newGET /api/voices/{id}/health); imports store the result in meta (audio_problems). Tests:tests/test_audio_problems.py,tests/voice-health.spec.js.
Changed
- Magazine interviews: journalist/guest voices. Interview labels such as
c't:(alsoc’t,ct, OCRCc't),Redaktion,Interviewer,Frageare the interviewing side and are read in the narrator voice; every other recurring label is a guest and gets the second voice. Unlabelled blocks continue the current speaker's turn; headings, decks and bylines stay narrator. Detection stays strict (label starts a block and recurs at least twice). Audio-timing records now store each segment's voice and speaker. Tests:tests/test_magazine.py(InterviewJournalistTests).
1.59.0 — 2026-10-04
Changed
- Characters: global cast view in the sidebar, per-book characters inside Studio. Library > Characters / Cast is now titled "All characters (all books)": one collapsible band per book (heading, per-book count,
aria-expanded), first book open and the rest closed and not rendered until opened (DOM budget), and a Search all books field. Studio > Voices lists only the book picked in Source, under a "Book: