Files
UmbraAudio/specs
B.D. Murphy 216bc78a3a Remove the dead narrator profiles; add --force for decisions a scan cannot make
The operator confirmed Narratorold and OrigNarrator are dead profiles. --force
exists for exactly this: a decision the scan is not entitled to make. It prints
the overridden conflict before acting, and never deletes a reference file.

Applied to Last Dwarf:
  profiles                        93 -> 91
  approved voices                 13 -> 13   (unchanged)
  voice ref files                 72 -> 72   (unchanged, both WAVs left on disk)
  dialogue rows labelled 'narrator'  3 -> 0   (now the approved Narrator)
  narration rows labelled 'narrator' 5978 -> 5978 (untouched)

The dead names survive as aliases of Narrator so no stray utterance can
resurrect a profile, and the 3 re-pointed rows are a genuine attribution fix:
ch5 utt26 and ch27 utt125 are narration mis-segmented as dialogue; ch42 utt290
is a first-person line that may be intended inner thought.

Rescan: 10 auto, 2 review, 3 blocked, unresolved spoken names 3 -> 2.
Full suite 575 passed / 8 failed, the same 8 pre-existing failures. ruff clean.
2026-10-04 19:05:47 -07:00
..

UmbraAudio Specifications

Index of all specification documents for the UmbraAudio audiobook generation system.

Specifications

File Topic Description
00-project-overview.md Architecture Pipeline overview, tech stack, data layout
01-parsing.md Pass 1a EPUB, PDF, TXT, MD manuscript parsing
02-analysis.md Pass 1b BookNLP, character profiling, pronunciation
03-voice-design.md Pass 2 Per-character voice reference generation
04-mapping.md Pass 3 Text segmentation, speaker attribution, manifests
05-generation.md Pass 5 Audio generation, caching, retry, CUDA management
06-normalization-watermarking.md Post-gen Audio normalization, ACX compliance, Perth watermark
07-assembly-export.md Export M4B, MP3, WAV export via FFmpeg
08-database.md Database SQLite schema, entity relationships, CRUD API
09-web-review-ui.md Web UI FastAPI + HTMX review interface
10-cli-orchestrator.md CLI Click commands, full pipeline orchestration
11-configuration-dependencies.md Config Pydantic settings, dependencies, build system
12-quality.md Quality MOS, WER, consistency, ACX compliance
18-UmbraTrans.md Multilingual Meaning-preserving translation, target voices, and multilingual audiobook production
19-enterprise-control-plane.md Enterprise Multi-tenant projects, access control, artifact lineage, and commercial voice library
20-enterprise-database-integration.md Enterprise DB Shared-PostgreSQL contract, blockers, cutover phases P1-P4
21-umbra-system-nodes-tasks-and-changes.md System Worker nodes, task assignment, cross-product change management, UI topology
22-releases-and-the-publish-flag.md Release The publish flag, pinned artifact sets, post-publication change, and the Deal Hunter lesson
23-speaker-duplicate-detection.md Speakers Duplicate-speaker scan, approval-safe merging, and the crowd veto

Quick Reference

Pipeline Passes

1a: Parse    → chapters table
1b: Analyze  → characters, pronunciation_guide
2:  Voices   → voice_ref WAVs
3:  Map      → manifests/*.json
4:  Test     → sample audio (optional)
5:  Generate → audio/*.wav, audio_normalized/*.wav
    Export   → export/*.m4b, *.mp3

Key Entry Points

Component File Class/Function
CLI cli.py main Click group
Pipeline orchestrator.py run_pipeline()
TTS voices/chatterbox.py ChatterboxEngine
Segmenter mapping/segmenter.py Segmenter
Generator generation/chapter.py ChapterGenerator
Normalizer assembly/normalize.py AudioNormalizer
Web UI web/__init__.py create_app()
Database database.py Database