Books deserve a voice.
Convert EPUB and TXT books into professionally narrated audiobooks with multi-voice synthesis, dialogue detection, and emotion inference.
Create
audiobooker new mybook.epub
Cast
audiobooker cast narrator bm_george --emotion calm
Render
audiobooker render
Features
Everything you need to turn text into audiobooks.
Multi-voice synthesis
Assign unique voices to each character. Narration, dialogue, and inner monologue each get their own voice.
Dialogue detection
Automatically identifies quoted dialogue vs narration and attributes speech to the correct speaker.
Emotion inference
Rule-based and lexicon-powered emotion labeling gives each line the right tone and delivery.
Voice suggestions
Explainable, ranked voice recommendations for every speaker based on character traits and context.
Review before render
Human-editable review format lets you correct attributions and emotions before committing to audio.
Persistent cache
Resume failed renders without re-synthesizing completed chapters. Pick up right where you left off.
Usage
Install
# Clone and install
git clone https://github.com/mcp-tool-shop-org/audiobooker
cd audiobooker
pip install -e .
# Required: voice-soundboard for TTS
pip install -e ../voice-soundboard
# Required: FFmpeg for audio assembly
# Windows: winget install ffmpeg
# Mac: brew install ffmpeg Quick workflow
# Create project from EPUB
audiobooker new mybook.epub
# Get voice suggestions & auto-apply
audiobooker cast-suggest
audiobooker cast-apply --auto
# Compile, review, render
audiobooker compile
audiobooker review-export
audiobooker render Python API
From EPUB
from audiobooker import AudiobookProject
project = AudiobookProject.from_epub("mybook.epub")
project.cast("narrator", "bm_george", emotion="calm")
project.cast("Alice", "af_bella", emotion="warm")
project.compile()
project.render("mybook.m4b") From text
from audiobooker import AudiobookProject
project = AudiobookProject.from_string(
"Chapter 1\n\nHello world.",
title="My Book"
)
project.compile()
project.render("mybook.m4b")