abchapterize 0.9.0
Correct chapter marks for your audiobooks — by actually listening to them.
ABChapterize scans audiobook files (.m4a, .m4b, .mp3, .opus, .mka) for spoken chapter announcements ("Chapter Seven", "Kapitel 12", …) using Whisper speech recognition and writes proper chapter marks straight into the file. No splitting, no server, no sidecar clutter — the audio itself is never re-encoded, only the chapter metadata is rewritten.
If you have ever bought an audiobook whose chapter marks were missing, misplaced, or pure fantasy, this is for you.
What it does
- Finds chapters by listening. Short candidate windows are probed at silences and jingles first, and a full region is only transcribed when that isn't enough — so the time-consuming Whisper work stays at a minimum.
- Jingle-aware by default. A bundled voice-activity model (Silero VAD) finds the music sting before an announcement even when it abuts the narration with no silence at all — something a plain amplitude scan misses entirely.
--mark-before-jingleanchors the mark to the jingle itself instead of just before the phrase. - Self-healing. Gaps in the detected chapter numbering trigger a full transcription of exactly the regions where the missing chapters must be hiding. Whatever still can't be found leaves the file tagged
.missing-marks-…, and a later run resumes it instead of starting over. - Verifies instead of trusting.
--verifychecks pre-existing marks against the audio and only redoes the stretches around the ones that don't hold up. - Writes in place, safely. Chapters are written by stream-copy remux into a temporary file that is verified before it atomically replaces the original — your audiobook can't be lost, even without
--backup(which is there too, along with--revert). - Eleven languages of number recognition — English, German, French, Spanish, Italian, Dutch, Turkish, Portuguese, Polish, Swedish and Danish, cardinals and ordinals, before or after the phrase ("Erstes Kapitel", "2. Kapitel", "chapitre premier", "Birinci Bölüm"). Language is detected per file by default, and localizes the chapter phrase and titles along with it.
- GPU accelerated — CUDA or Vulkan when available, CPU otherwise. Batches run several files at once, auto-throttled to live CPU load.
- Zero setup for models. The Whisper model downloads on first use and is checked against pinned SHA-256 and SHA3-256 digests before it is loaded.
Getting started
- Have
ffmpeg/ffprobeavailable (inPATH, next to the executable, or whereverFFMPEG_DIRpoints). - Download the archive for your platform below and unpack it anywhere — keep the
runtimesfolder next to the executable. - Run it:
abchapterize "My Audiobook.m4b"
The speech model (~1.6 GB for the default turbo) downloads once on first run. Then:
My Audiobook.m4b: 23 chapter(s) written (1-23) + intro, language: en (p=1.00)
Being careful on the first try is one flag away: --backup keeps the original as *.bak, and abchapterize --revert puts it back.
Downloads
| File | Platform |
|---|---|
abchapterize-0.9.0-win-x64.zip |
Windows x64 |
abchapterize-0.9.0-linux-x64.tar.gz |
Linux x64 (glibc) |
Both are self-contained — no .NET runtime to install. Each archive carries the executable, the native Whisper and ONNX Runtime libraries (CPU, CUDA and Vulkan backends), the README, the manual, and all license texts.
Notes
Version 0.9.0 rather than 1.0.0 on purpose: it does the job and does it carefully, but the option set may still shift before 1.0.