Ebook to Audio converts EPUB and PDF files into navigable audiobooks with chapter-aware playback. Its recoverable AI pipeline preserves structure through extraction, synthesis, and assembly.
Heart of Darkness moves from source analysis through voice selection, recoverable processing, chapter navigation, and book chat.
Product screens
Open a screen to inspect the flow.
01 · Context
What prompted it
This is not a text-to-speech wrapper. EPUB and PDF files encode structure differently, and extraction quality determines whether the finished audio still behaves like a book.
Long-running conversions exceed request boundaries and cross workers and providers. Partial failures, quotas, retries, reconciliation, and user-scoped artifacts are therefore product behavior, not background implementation details.
02 · Approach
How it works
Use format-specific EPUB and PDF extraction, AI-assisted cleaning and normalization with deterministic fallbacks, and chapter detection from tables of contents, bookmarks, markers, and heuristics.
Preserve chapter lineage through chunking and synthesis, then combine available synthesis metadata with measured assembled-audio durations and checks to produce navigation timing.
Run conversion as atomic queued jobs with retries, failed-job state after retry exhaustion, event-triggered invocation, scheduled reconciliation, and quota-aware provider selection and error handling.
03 · Decisions
Choices along the way
01
Shipped
Adapt extraction to the source format
Constraint
EPUB packages and PDFs expose text and structure through different signals, while either source can contain noisy or missing metadata.
Alternatives considered
Flatten every source to plain text or ask a model to reconstruct the whole document structure.
Decision
Use format-specific extraction, AI-assisted cleaning and normalization with deterministic fallbacks, and multiple chapter-detection signals.
Effect
The pipeline supports source-specific recovery while preserving usable structure before synthesis begins.
02
Shipped
Preserve chapter lineage across every stage
Constraint
Reconstructing chapters after one assembled audio file loses the relationship between source structure, chunks, synthesis output, and playback positions.
Alternatives considered
Generate one audio stream and infer chapter boundaries after assembly.
Decision
Carry chapter identity through extraction, cleaning, chunking, synthesis, and assembly, then use available synthesis metadata and measured assembled-audio durations and checks for timing.
Effect
The finished artifact retains enough lineage to support chapter navigation and diagnose timing mismatches without an exact-timing guarantee.
03
Shipped
Make long-running conversion recoverable
Constraint
A book exceeds request lifetimes, and workers or providers can fail after only part of the conversion completes.
Alternatives considered
Run the conversion in one request or depend only on event delivery without reconciliation.
Decision
Use atomic queued jobs, retries, failed-job state after retry exhaustion, event-triggered invocation, scheduled reconciliation, and quota-aware provider selection and error handling.
Effect
Work can resume or stop at explicit job boundaries, and missed events or provider constraints have defined recovery paths.
04 · Current state
What is true now
Shipped
The deployed EPUB and PDF flow includes chapter detection, multiple voices and languages, playback, download, and book chat.
Evidence
The implementation contains format-specific extraction, cleaning fallbacks, chapter lineage, atomic queued jobs, retries and terminal failure state, event invocation, scheduled reconciliation, and quota-aware provider handling.
Unresolved
Behavior under sustained load is unmeasured. The intended artifact lifecycle is only partially implemented and has not been verified end to end.
Reliable AI document processing depends on lineage and recovery across transformations, workers, and providers.
Data adaptation begins before the model
Evidence
EPUB and PDF extraction use different structural signals, with cleaning and deterministic fallbacks before synthesis.
Next time
Profile source variability and define fallback quality gates before selecting the generation provider.
Lineage makes generated audio navigable
Evidence
Chapter identity survives extraction, chunking, synthesis, and assembly, then informs timing checks in the finished audio.
Next time
Make lineage identifiers and reconciliation metadata first-class in every transformation contract.
Concurrency and provider failure are product behavior
Evidence
Atomic jobs, retries, terminal failure state, event invocation, reconciliation, and quota-aware handling determine how incomplete work is exposed and recovered.
Next time
Design user-visible failure and resumption states with the queue and provider strategy, not after them.