tts-voice-creator-clone-and.../routes
mARTin-B78 e7cb92c572 feat(audiobook): span-mode casting - deterministic quote spans, LLM only names speakers
Split the book into narration/dialogue spans from its own quotation marks and ask
the LLM only who speaks each dialogue span (POST /api/attribute-spans), so text can
no longer be fused, dropped or duplicated and a novel takes ~10 min instead of ~4 h.
Book 1 vs the hand-corrected reference: every-word-right 87.0% -> 92.3%, type
agreement 93.6% -> 97.4%; Books 2/3 (not tuned on) 90.8% / 89.9%.

- static/js/audiobook-spans.js (pure, unit-tested) + audiobook-cast-spans.js
- core/attribution_spans.py, route, tests; scripts/score_attribution.py
- default on; localStorage ab-span-mode=0 restores the classic engine
- architecture/audiobook-attribution.md, Manual, CHANGELOG 1.32.0, TODO

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-19 08:30:26 +02:00
..
__init__.py Security audit, modular refactor, and container-name field 2026-05-29 12:13:07 +02:00
admin.py Release v1.22.2 2026-09-03 16:12:02 +02:00
characters.py feat: validate canonical image asset digests 2026-09-04 09:53:50 +02:00
conversation.py feat(audiobook): span-mode casting - deterministic quote spans, LLM only names speakers 2026-09-19 08:30:26 +02:00
docker.py fix(engines): resolve LiteLLM card's own key server-side instead of a stale global one 2026-09-14 13:58:54 +02:00
history.py feat: record protected generation history 2026-09-04 08:07:42 +02:00
jobs.py feat: expand resource diagnostics 2026-09-04 10:42:08 +02:00
library.py security: validate upload filenames and archive paths 2026-09-04 08:04:26 +02:00
magazine.py feat(magazine): let review screen boxes be moved, resized, deleted, and re-OCRed in place 2026-09-15 12:40:07 +02:00
reader.py Refine character sheets and live output UI 2026-07-09 19:47:16 +02:00
recovery.py security: harden P0 boundaries and recovery 2026-09-04 07:33:41 +02:00
rehearsals_db.py Release v1.22.3 2026-09-04 07:28:26 +02:00
settings.py fix: prevent caching of API key handoff 2026-09-04 08:52:46 +02:00
sources.py perf: bound fish audio response cache 2026-09-04 07:53:17 +02:00
stt.py feat: distinguish provider configuration and health 2026-09-04 11:35:52 +02:00
tts.py feat: distinguish provider configuration and health 2026-09-04 11:35:52 +02:00