ebook2audiobook is a free, open source publishing project written in Python and released under Apache-2.0. It has 20,198 GitHub stars, 1,728 forks and 4 open issues, and was last pushed 20 hours ago. On this registry it ranks #6 of 46 tracked projects in Publishing, with 5 head-to-head comparisons available. It gained 16 stars over the last 3 tracked days.

What is ebook2audiobook?

What it is

ebook2audiobook (E2A) is an open-source Python tool that converts e-books into audiobooks with chapters and metadata, using advanced text-to-speech engines. It supports voice cloning and 1158 languages, and runs on CPU or GPU. The project lives in the Python ecosystem, is licensed under Apache-2.0, and carries topics covering audiobook, TTS, voice cloning, multilingual output, Gradio, Docker, and XTTS. It has been on GitHub for three years and holds roughly 20,175 stars and 1,727 forks.

The concrete problem it solves is the gap between a written e-book file and a listenable audio file. Rather than requiring a paid narration service or manual recording, E2A reads a source document, extracts its text, and renders speech through one of several TTS engines. It preserves chapter structure and metadata so the resulting audiobook is navigable rather than one undifferentiated track. It also handles documents whose text exists only as page images, using OCR scanning to recover the content before synthesis. A TextArea allows a short passage of text to be converted directly to audio without a source file.

Key capabilities

  • Supports multiple TTS engines: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, and YourTTS.
  • Converts many input formats, including .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, and .zip.
  • Performs OCR scanning on files whose text pages are images.
  • Offers optional voice cloning from a user-supplied voice file.
  • Produces high-quality text-to-speech ranging from near realtime to near real voice.
  • Generates audiobooks with chapters and metadata.
  • Provides a Gradio web interface alongside headless command-line usage.

Who uses it and how

  • Self-hosters run it locally on Linux, Mac, or Windows, on either CPU or GPU hardware.
  • Users deploy it through Docker, with a published Docker build workflow and release downloads.
  • Users run it remotely through a Hugging Face Space, a free Google Colab notebook, or a Kaggle notebook.
  • Users launch the Gradio web interface for interactive conversion, or use basic headless usage for scripted runs.
  • Users supply custom XTTS model zips, use fine-tuned TTS models, or train their own XTTSv2 model.

Getting started

Run locally via the quick-start instructions, the latest release download, or the Docker image; run remotely through the Hugging Face Space, Google Colab, or Kaggle notebook. Launch the Gradio web interface for interactive use, or invoke headless usage for command-line conversion.

When to use it — and when not to

The tool is intended only for non-DRM, legally acquired e-books, so it is not suitable for protected commercial titles. A self-hoster must operate their own environment, including the Python

project readme (upstream, from github) — read inline

📚 ebook2audiobook (E2A)

CPU/GPU Converter from E-Book to audiobook with chapters and metadata
using advanced TTS engines and much more.
Supports voice cloning and 1158 languages!

[!IMPORTANT] This tool is intended for use with non-DRM, legally acquired eBooks only.
The authors are not responsible for any misuse of this software or any resulting legal consequences.
Use this tool responsibly and in accordance with all applicable laws.

Discord

Thanks to support ebook2audiobook developers!

Ko-Fi

Run locally

Quick Start

Docker Build Download

Platform Docker Pull Count

Run Remotely

Hugging Face Free Google Colab Kaggle

GUI Interface

demo_web_gui

Click to see images of Web GUI

Demos

New Default Voice Demo

https://github.com/user-attachments/assets/750035dc-e355-46f1-9286-05c1d9e88cea

More Demos

ASMR Voice

https://github.com/user-attachments/assets/68eee9a1-6f71-4903-aacd-47397e47e422

Rainy Day Voice

https://github.com/user-attachments/assets/d25034d9-c77f-43a9-8f14-0d167172b080

Scarlett Voice

https://github.com/user-attachments/assets/b12009ee-ec0d-45ce-a1ef-b3a52b9f8693

David Attenborough Voice

https://github.com/user-attachments/assets/81c4baad-117e-4db5-ac86-efc2b7fea921

Example

Example

README.md

Table of Contents

Features

  • 🔧 TTS Engines supported: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS
  • 📚 Convert multiple file formats: .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, .zip
  • 💻 TextArea to convert directly a short text in audio
  • 🔍 OCR scanning for files with text pages as images
  • 🔊 High-quality text-to-speech from near realtime to near real voice
  • 🗣️ Optional voice cloning using your own voice file
  • 🌐 Supports 1158 languages (supported languages list)
  • 💻 Low-resource friendly — runs on 2 GB RAM / 1 GB VRAM (minimum)
  • 🎵 Audiobook output formats: mono or stereo aac, flac, mp3, m4b, m4a, mp4, mov, ogg, wav, webm
  • 🧠 SML tags supported — fine-grained control of breaks, pauses, voice switching and more (see below)
  • 🧩 Optional custom model using your own trained model (XTTSv2, VITS, FAIRSEQ, PIPER, others on request)
  • 🎛️ Fine-tuned preset models trained by the E2A Team

(Contact us if you need additional fine-tuned models, or if you’d like to share yours to the official preset list)

Hardware Requirements

  • 2GB RAM min, 8GB recommended.
  • 1GB VRAM min, 4GB recommended.
  • Virtualization enabled if running on windows (Docker only).
  • CPU, XPU (intel, AMD, ARM)*.
  • CUDA, ROCm, JETSON
  • MPS (Apple Silicon CPU)

* Modern TTS engines are very slow on CPU, so use lower quality TTS like YourTTS, Tacotron2 etc..

Supported Languages

Arabic (ar) Chinese (zh) English (en) Spanish (es)
French (fr) German (de) Italian (it) Portuguese (pt)
Polish (pl) Turkish (tr) Russian (ru) Dutch (nl)
Czech (cs) Japanese (ja) Hindi (hi) Bengali (bn)
Hungarian (hu) Korean (ko) Vietnamese (vi) Swedish (sv)
Persian (fa) Yoruba (yo) Swahili (sw) Indonesian (id)
Slovak (sk) Croatian (hr) Tamil (ta) Danish (da)

Supported eBook Formats

  • .epub, .pdf, .mobi, .txt, .html, .rtf, .chm, .lit, .pdb, .fb2, .odt, .cbr, .cbz, .prc, .lrf, .pml, .snb, .cbc, .rb, .tcr
  • Best results: .epub or .mobi for automatic chapter detection

Output and process Formats

  • .m4b, .m4a, .mp4, .webm, .mov, .mp3, .flac, .wav, .ogg, .aac
  • Process format can be changed in lib/conf.py

SML tags available

  • [break] — silence (random range 0.3–0.6 sec.)
  • [pause] — silence (random range 1.0–1.6 sec.)
  • [pause:N] — fixed pause (N sec.)
  • [voice:/path/to/voice/file]...[/voice] — switch voice from default or selected voice from GUI/CLI

Check our other repo dedicated to add SML automatically in your ebook -> E2A-SML

[!IMPORTANT] Before to post an install or bug issue search carefully to the opened and closed issues TAB
to be sure your issue does not exist already.

[!NOTE] EPUB format lacks any standard structure like what is a chapter, paragraph, preface etc.
So you should first remove manually any text you don't want to be converted in audio.

Instructions

  1. Clone repo

    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. Install / Run ebook2audiobook:

    • Linux/MacOS
      ./ebook2audiobook.command
      

Note for MacOS users: homebrew is installed to install missing programs.

  • Mac Launcher
    Double click Mac Ebook2Audiobook Launcher.command

  • Windows

    ebook2audiobook.cmd
    

    or Double click ebook2audiobook.cmd

Note for Windows users: scoop is installed to install missing programs without administrator privileges.

  1. Open the Web App: Click the URL provided in the terminal to access the web app and convert eBooks. http://localhost:7860/
  2. For Public Link: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (all OS)

[!IMPORTANT] **If the script is stopped and run ag

readme truncated — read the full docs on github

Frequently asked questions

Is ebook2audiobook free to use?

ebook2audiobook is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does ebook2audiobook do?

Generate audiobooks from e-books, voice cloning & 1158+ languages!

What is ebook2audiobook written in?

ebook2audiobook is primarily written in Python. Its source is publicly available at https://github.com/DrewThomasson/ebook2audiobook, and it has 20,198 GitHub stars.