tts-voice-creator-clone-and.../core
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
attribution_spans.py feat(audiobook): span-mode casting - deterministic quote spans, LLM only names speakers 2026-09-19 08:30:26 +02:00
audio.py Fix Fish-Speech emotion tags, wire book context into portraits, add emotion controls app-wide (v1.20.5) 2026-08-11 18:02:41 +02:00
config.py feat: automate semantic magazine layout 2026-09-09 17:48:56 +02:00
constants.py feat: complete magazine P1 (images, play-all, karaoke, driving mode, sidebar exclusion) + OCR engines page + second OCR engine 2026-09-06 23:39:34 +02:00
database.py feat: persist background job result artifacts 2026-09-04 09:48:37 +02:00
docker_client.py fix(docker): remove undefined-variable reconnect that broke all container status/start/stop/restart 2026-09-14 18:14:22 +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
presets.py Back user state with SQLite voice index 2026-06-30 15:06:43 +02:00
provider_health.py refactor: centralize provider health probes 2026-09-04 10:25:55 +02:00
registry.py Security audit, modular refactor, and container-name field 2026-05-29 12:13:07 +02:00
retry.py feat: unify transient provider retries 2026-09-04 09:36:48 +02:00
routing.py Release v1.22.2 2026-09-03 16:12:02 +02:00
tts_helpers.py Fix bundle-breaking TDZ throw, use English emotion instructs, forward Fish gen params (v1.20.6) 2026-08-11 22:00:56 +02:00
validation.py feat: validate canonical image asset digests 2026-09-04 09:53:50 +02:00
voice_index.py Add unified Studio casting workflow and fix voice/casting pipeline bugs 2026-07-26 02:03:56 +02:00
voice.py security: harden P0 boundaries and recovery 2026-09-04 07:33:41 +02:00