tts-voice-creator-clone-and.../core
mARTin-B78 c81ae28da2
Some checks are pending
Test and SonarQube / quality (push) Waiting to run
feat(magazine): add figure/chart/table description generation and spoken narration
Adds a "Describe" action per figure in article review: sends the cropped
image to the configured vision engine (with fallback) for a type-aware
one- or two-sentence description -- a chart gets a prompt about what it
measures and its trend, a table about headings and what stands out, etc.
Editable before approval. A new "Read figure descriptions" toggle in the
reading controls speaks these where they occur; purely additive, off by
default, and a figure with no description behaves exactly as before.

New core/magazine.py describe_visual_region()/_chain() reuse the same
reliability guards as page OCR (repetition-loop detection, sentence-
boundary truncation). New routes: POST .../images/{id}/describe
(background job), PATCH .../images/{id} (manual edit), descriptions=1 on
the article-text endpoint.

Live-verified end to end against the ingested c't KI Wissen 2026
magazine. Also found and documented a real, config-dependent limitation:
the currently-configured primary vision engine is transcription-only and
returns empty content for any descriptive prompt (confirmed with three
different prompts) -- not a code defect, but description generation
needs a genuinely caption-capable engine reachable as the fallback.

251 tests passing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-14 17:39:57 +02:00
..
__init__.py Security audit, modular refactor, and container-name field 2026-05-29 12:13:07 +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 security: isolate docker socket behind proxy 2026-09-04 07:55:00 +02:00
magazine.py feat(magazine): add figure/chart/table description generation and spoken narration 2026-09-14 17:39:57 +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