tts-voice-creator-clone-and.../tests
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
..
fixtures test: add book two attribution fixture 2026-09-04 09:18:41 +02:00
audiobook-spans.spec.js feat(audiobook): span-mode casting - deterministic quote spans, LLM only names speakers 2026-09-19 08:30:26 +02:00
audiobook-spans.test.mjs feat(audiobook): span-mode casting - deterministic quote spans, LLM only names speakers 2026-09-19 08:30:26 +02:00
bundle.spec.js Release v1.6.0: a11y (WCAG AA), i18n (DE), PWA, perf, tests, Cast UX 2026-06-03 14:23:35 +02:00
characters.spec.js perf: lazy-load section feature modules 2026-09-04 10:23:20 +02:00
constrained.spec.js test: measure constrained character workloads 2026-09-04 10:34:27 +02:00
i18n.spec.js Stabilize browser smoke tests for current UI 2026-08-19 16:59:39 +02:00
lazy-loading.spec.js fix: preserve audiobook dialogue boundaries 2026-09-04 15:36:26 +02:00
magazine.spec.js feat(magazine): fix Edit boxes, add spread view, searchable narrator picker and Prepare audio 2026-09-18 23:10:16 +02:00
rehearser.spec.js refactor: extract rehearser voice matching 2026-09-04 11:47:51 +02:00
smoke.spec.js Release v1.26.1 2026-09-08 23:39:44 +02:00
test_attribution_spans.py feat(audiobook): span-mode casting - deterministic quote spans, LLM only names speakers 2026-09-19 08:30:26 +02:00
test_conversation.py fix: recover character sheet requests from gateway 405 2026-09-09 06:49:52 +02:00
test_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
test_magazine_routes.py feat(magazine): let review screen boxes be moved, resized, deleted, and re-OCRed in place 2026-09-15 12:40:07 +02:00
test_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
test_provider_health.py refactor: centralize provider health probes 2026-09-04 10:25:55 +02:00
test_security.py feat: distinguish provider configuration and health 2026-09-04 11:35:52 +02:00