Character attribution gets all the attention in multi-voice audiobook work, and fair enough — it's the interesting ML problem. But what makes a generated audiobook feel amateur is almost never the voice casting. It's the seams. A click between paragraphs. A chapter that starts mid-copyright-notice. Volume that jumps when a different speaker takes over. Losing your place because the app re-generated and every segment boundary shifted.
That's assembly engineering. It's unglamorous, and it's where perceived quality actually lives.
EPUB structure lies to you
An EPUB is a zip with an OPF manifest, a spine giving reading order, and usually a nav document (nav.xhtml in EPUB 3, toc.ncx in EPUB 2). Naively, spine items are chapters. They are not.
Real-world breakage, all of which I've hit: one spine item containing five chapters (common in older conversions where the whole book is book.xhtml); one chapter split across four spine items because the converter chunked on file size; spine entries that are cover images, blank pages, or ads for the publisher's other titles; and nav docs pointing at fragment IDs (chapter3.xhtml#ch3), so chapter boundaries live inside files rather than at file boundaries.








