Repository navigation
Releases
Releases · aaron-ang/epub-to-m4b
v0.5.0
0.5.0 (2026-10-31)
Features
- audio: trim clip edge silence at assembly (d3b40f2)
- cli: convert several books with one engine (29ac509)
Bug Fixes
- cli: keep a batch going through OS errors and duplicate paths (c4f9ace)
- tts: cap Drama max_new_tokens at the server's 4096 (415f860)
- tts: give a spawned Drama server time to exit before SIGKILL (6736d40)
Documentation
- move non-critical README content into a FAQ (f7ad71d)
v0.4.0
0.4.0 (2026-10-28)
⚠ BREAKING CHANGES
- tts: RunawayPolicy loses its cut/fade behaviour, and TTSEngine gains retries, clip_miss and resynthesize hooks.
Features
- cli: log progress every 10% and stream ffmpeg progress (1a51594)
- text: cut sentences at the engine's max_chars, not a global 125 (8e5eea2)
- tts: add Fish Audio Drama 3 engine on vLLM-Omni (a59caad)
Bug Fixes
- cli: report exact progress percent at float boundaries (d85717a)
- epub: drop bare bracketed note markers (2e80c95)
- epub: drop TOC entries labelled Index (2ed4fa0)
- epub: keep bare-number chapters after an excluded TOC label (d38ffc0)
- tts: avoid the keep-alive race with sidecar servers (9452e65)
- tts: never cut clips; retry them in full capped batches (9cc986a)
Performance Improvements
- synth: render the longest batch first (87e9b46)
Documentation
- update audio sample (80e64d2)
v0.3.0
0.3.0 (2026-09-24)
⚠ BREAKING CHANGES
- text: the environment is managed by pixi (uv.lock, Makefile and .python-version are removed), and normalized text changes for most sentences, so most clips are re-synthesized.
- cache: clip cache keys change, so existing clip caches are not reused.
- breeze: the
weights_dirkey in [engine.breeze] is removed. Put the model dir or repo id at the end ofcommandand start the server withbreeze-tts-server. The fingerprint changes, so existing Breeze clips are not reused.
Features
- audio: normalize loudness to -16 LUFS and rebuild on encode changes (9b2b4d4)
- breeze: take the model from command and read model facts from the server (dc2abb0)
- cache: key clips by their exact text (7a15553)
- epub: skip notes and source lists by their semantics (89ffa8e)
- text: normalize with NeMo text processing and manage the env with pixi (ca269b6)
Bug Fixes
- split: keep name initials in one sentence (a1f6c79)
- synth: pause for the heading gap after a chapter's last sentence (b8a38ac)
Documentation
v0.2.0
0.2.0 (2026-09-22)
Features
- cli: surface engine guard notes on stderr (9a79ff9)
Bug Fixes
- cli: report any EpubToM4bError from convert as a clean exit 1 (2cab482)
- config: convert TOML integers to float for float fields (c7e5788)
- config: reject TOML values whose type does not match the engine config field (a53087e)
- errors: route sidecar timeout and malformed batch responses through EpubToM4bError (78a4e33)
Performance Improvements
- tts: reseed runaway clips as one batch per attempt (9aea1e9)
Documentation
- add CONTRIBUTING.md and CHANGELOG.md (9402975)
- add quick start, example output, engine and troubleshooting tables, pipeline diagram (c08c609)
- cli: add help text for every argument and subcommand (fde7970)
- cli: note that the log handler binds stderr at call time (0cd1798)
- readme: lead with API engines, present Breeze as the self-hosted sidecar (77dc527)
- tighten README and AGENTS.md into tables and lists (a357bfd)