Changelog
All notable changes to Kenkui are recorded here. The format follows Keep a Changelog, and versions follow Semantic Versioning.
Unreleased
10.0.0 - Unreleased
Kenkui 10 is a ground-up rewrite. It shares no code with the 2.x series, and
none of the 2.x API carries over. The version is 10 in binary: the second
generation.
Added
- An immutable, typed
PipelineAPI:book(), fluent intent methods,validate(),inspect(),resolve(), andwrite(), plusmagic_run()for one-call rendering. - Local speech synthesis with Pocket-TTS 2.1.0, in spawned worker processes, with a private per-book audio cache and atomic M4B publication through FFmpeg.
- Explicit voice provisioning with
load_voice(),unload_voice(),add_voice(),remove_voice(), andlist_voices(), over a built-in catalog of 26 upstream voices and 95 precompiled kenkui-voices. - Multi-voice casting: character discovery with spaCy or a LiteLLM model, an
optional identity pass that merges aliases, LiteLLM quote attribution
(including unnamed speakers), and a deterministic casting solver with
genderedandrandommethods. - Character review with
resolve(until="characters")andwith_characters(). - Series continuity:
.series()keeps characters' voices across volumes. - Speech shaping:
pronounce()with lexicons, number-reading tiers, and vocal gesture collapsing;pauses(); and cover art control. - The dial-in loop:
script(),attribute(),silence(), scopedpronounce(),select(),preview(), and sidecar corrections withannotations()andwrite_annotations(). - Progress events, cooperative cancellation, and stable
ErrorCodevalues on every failure. - Runnable examples in
examples/.