@Ryrenz: Incredible! Converts entire ebooks to audiobooks using your own voice – 19,700 stars on GitHub. On your commute, wanting to 'finish' a book, current methods are all awkward: the book you want isn't on audiobook platforms, machine reading has that robotic tone you want to close immediately, and in Chinese, it often misreads pauses. This...

X AI KOLs Timeline Tools

Summary

This project converts ebooks to audiobooks, supporting various formats and TTS engines, including voice cloning, ideal for listening during commutes.

It's amazing, it can turn entire ebooks into audiobooks and even read them with your own voice. With 19,700 stars on GitHub On your commute, wanting to 'finish' a book, current methods are all awkward: the book you want isn't available on audiobook platforms, and machine reading has that robotic tone you want to close immediately, often misreading pauses in Chinese. This project directly converts your books into audiobooks, complete with chapters and metadata, so you can skip chapters when imported into a player. It supports a wide range of input formats: EPUB, MOBI, PDF, TXT, HTML, RTF, DOC, DOCX, ODT, and even scanned documents via OCR. Output defaults to M4B, with MP3, FLAC, WAV, OGG, and AAC also available. The voice options are more extensive than you might think: nine engines including XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS, and Piper, with optional voice cloning and custom speech models, supporting 1,158 languages. Whether you want to batch convert a whole shelf or directly integrate with Audiobookshelf, it's all set up. The system requirements aren't high; it runs with a minimum of 2 GB RAM and 1 GB VRAM, supporting CPU, CUDA, ROCm, Intel XPU, Jetson, and Apple M series, and if you don't want to tinker locally, you can use Colab, Kaggle, or Hugging Face Spaces. One prerequisite: the project explicitly states it is only for DRM-free ebooks obtained legally. Books you've bought should be readable however you want. GitHub:
Original Article
View Cached Full Text

Cached at: 08/19/26, 08:40 AM

Wow, that’s amazing! It can turn an entire ebook into an audiobook, and even use your own voice to read it. On GitHub with 19.7k stars, if you want to “read” a book during your commute, existing methods are awkward: the audiobook you want isn’t on platforms, and machine narration sounds robotic and often mispronounces Chinese words or misplaces pauses.

This project directly converts the ebook you have into an audiobook—a complete product with chapters and metadata that you can import into a player and jump by chapter. It accepts a wide range of input formats: EPUB, MOBI, PDF, TXT, HTML, RTF, DOC, DOCX, and ODT, and can even process scans via OCR. The default output format is M4B, but it also supports MP3, FLAC, WAV, OGG, AAC, and others.

The voice options are more extensive than you might expect: nine engines including XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS, and Piper, with optional voice cloning and custom voice models. It claims to support 1,158 languages. If you want to batch convert a whole bookshelf or send the output directly to Audiobookshelf, that’s all set up too.

The hardware requirements aren’t demanding—a minimum of 2 GB RAM and 1 GB VRAM will run it. It supports CPU, CUDA, ROCm, Intel XPU, Jetson, and Apple M series. If you don’t want to set it up locally, you can use Colab, Kaggle, or Hugging Face Spaces.

One prerequisite: the project explicitly states it’s only for non-DRM, legally acquired ebooks. You should be able to read your purchased books however you want.

GitHub: — # DrewThomasson/ebook2audiobook Source: https://github.com/DrewThomasson/ebook2audiobook # 📚 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 (https://discord.gg/63Tv3F65k6) ### Thanks to support ebook2audiobook developers! Ko-Fi (https://ko-fi.com/athomasson2) ### Run locally Quick Start Docker Build (https://github.com/DrewThomasson/ebook2audiobook/actions/workflows/Docker-Build.yml) Download (https://github.com/DrewThomasson/ebook2audiobook/releases/latest) ### Run Remotely Hugging Face (https://huggingface.co/spaces/drewThomasson/ebook2audiobook) Free Google Colab (https://colab.research.google.com/github/DrewThomasson/ebook2audiobook/blob/main/Notebooks/colab_ebook2audiobook.ipynb) Kaggle (https://github.com/Rihcus/ebook2audiobookXTTS/blob/main/Notebooks/kaggle-ebook2audiobook.ipynb) #### 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 - ebook2audiobook - Features - GUI Interface - Demos - Supported Languages - Minimum Requirements - Usage - Run Locally - Launching Gradio Web Interface - Basic Headless Usage - Headless Custom XTTS Model Usage - Help command output - Run Remotely - Docker - Steps to Run - Cloned Voices - Fine Tuned TTS models - Collection of Fine-Tuned TTS Models - Train XTTSv2 - Supported eBook Formats - Output Formats - Revert to older Version - Common Issues - Special Thanks - 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 (https://dl.fbaipublicfiles.com/mms/tts/all-tts-languages.html)) - 💻 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) | - +1130 languages and dialects here (https://dl.fbaipublicfiles.com/mms/tts/all-tts-languages.html) ## 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 bash git clone https://github.com/DrewThomasson/ebook2audiobook.git cd ebook2audiobook 2. Install / Run ebook2audiobook: - Linux/MacOS bash ./ebook2audiobook.command Note for MacOS users: homebrew is installed to install missing programs. - Mac Launcher Double click Mac Ebook2Audiobook Launcher.command - Windows bash 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 again, you need to refresh your gradio GUI interface to let the web page reconnect to the new connection socket. ### Basic Usage - Linux/MacOS: bash ./ebook2audiobook.command --headless --ebook --voice --language - Windows bash ebook2audiobook.cmd --headless --ebook --voice --language - [–ebook]: Path to your eBook file - [–voice]: Voice cloning file path (optional) - [–language]: Language code in ISO-639-3 (i.e.: ita for italian, eng for english, deu for german…). Default language is eng and –language is optional for default language set in ./lib/lang.py. The ISO-639-1 2 letters codes are also supported. ### Example of Custom Model Zip Upload (must be a .zip file containing the mandatory model files. Example for XTTSv2: config.json, model.pth, vocab.json and ref.wav) - Linux/MacOS bash ./ebook2audiobook.command --headless --ebook --language --custom_model - Windows bash ebook2audiobook.cmd --headless --ebook --language --custom_model Note: the ref.wav of your custom model is always the voice selected for the conversion - ****: Path to model_name.zip file, which must contain (according to the tts engine) all the mandatory files (see ./lib/models.py). ### For Detailed Guide with list of all Parameters to use - Linux/MacOS bash ./ebook2audiobook.command --help - Windows bash ebook2audiobook.cmd --help - Or for all OS python app.py --help bash usage: app.py [-h] [--session SESSION] [--share] [--headless] [--ebook EBOOK] [--ebooks_dir EBOOKS_DIR] [--language LANGUAGE] [--voice VOICE] [--voice_map VOICE_MAP] [--device {CPU,CUDA,MPS,ROCM,XPU,JETSON}] [--tts_engine {XTTS,BARK,VITS,FAIRSEQ,TACOTRON,YOURTTS,xtts,bark,vits,fairseq,tacotron,yourtts}] [--custom_model CUSTOM_MODEL] [--fine_tuned FINE_TUNED] [--output_format OUTPUT_FORMAT] [--output_channel OUTPUT_CHANNEL] [--temperature TEMPERATURE] [--length_penalty LENGTH_PENALTY] [--num_beams NUM_BEAMS] [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P] [--speed SPEED] [--enable_text_splitting] [--text_temp TEXT_TEMP] [--waveform_temp WAVEFORM_TEMP] [--output_dir OUTPUT_DIR] [--version] Convert eBooks to Audiobooks using a Text-to-Speech model. You can either launch the Gradio interface or run the script in headless mode for direct conversion. options: -h, --help show this help message and exit --session SESSION Session to resume the conversion in case of interruption, crash, or reuse of custom models and custom cloning voices. **** The following option is for gradio/gui mode only: --share (Optional) Enable a public shareable Gradio link. **** The following options are for --headless mode only: --headless Run the script in headless mode --ebook EBOOK Path to the ebook file for conversion. Cannot be used when --ebooks_dir is present. --ebooks_dir EBOOKS_DIR Relative or absolute path of the directory containing the files to convert. Cannot be used when --ebook is present. --text TEXT Raw text for conversion. Cannot be used when --ebook or --ebooks_dir is present. --language LANGUAGE Language of the e-book. Default language is set in ./lib/lang.py sed as default if not present. All compatible language codes are in ./lib/lang.py optional parameters: --translate ISO3 (Optional) Translate ebook to a target language (ISO 639-3 code, e.g. eng, fra, deu) before TTS synthesis. Uses argostranslate. The target language becomes the effective TTS language for the run. A copy of the source ebook is made with the _ suffix so translated and non-translated outputs stay isolated (independent process folder, audio chunks, and final file). --voice VOICE (Optional) Path to the voice cloning file for TTS engine. Uses the default voice if not present. --voice_map VOICE_MAP (Optional, --ebooks_dir only) Path to a JSON file mapping ebook path -> voice path. Each entry overrides --voice for that specific ebook. Missing/null entries fall back to --voice. Keys may be absolute paths or basenames. Example: {"book1.epub": "/voices/eng/adult/female/alice.wav", "/abs/path/book2.epub": null} --device {CPU,CUDA,MPS,ROCM,XPU,JETSON} (Optional) Processor unit type for the conversion. Default is set in ./lib/conf.py if not present. Fall back to CPU if CUDA or MPS is not available. --tts_engine {XTTS,BARK,VITS,FAIRSEQ,TACOTRON,YOURTTS,xtts,bark,vits,fairseq,tacotron,yourtts} (Optional) Preferred TTS engine (available are: ['XTTS', 'BARK', 'VITS', 'FAIRSEQ', 'TACOTRON', 'YOURTTS', 'xtts', 'bark', 'vits', 'fairseq', 'tacotron', 'yourtts']. Default depends on the selected language. The tts engine should be compatible with the chosen language --custom_model CUSTOM_MODEL (Optional) Path to the custom model zip file cntaining mandatory model files. Please refer to ./lib/models.py --fine_tuned FINE_TUNED (Optional) Fine tuned model path. Default is builtin model. --output_format OUTPUT_FORMAT (Optional) Output audio format. Default is m4b set in ./lib/conf.py --output_channel OUTPUT_CHANNEL (Optional) Output audio channel. Default is mono set in ./lib/conf.py --temperature TEMPERATURE (xtts only, optional) Temperature for the model. Default to config.json model. Higher temperatures lead to more creative outputs. --length_penalty LENGTH_PENALTY (xtts only, optional) A length penalty applied to the autoregressive decoder. Default to config.json model. Not applied to custom models. --num_beams NUM_BEAMS (xtts only, optional) Controls how many alternative sequences the model explores. Must be equal or greater than length penalty. Default to config.json model. --repetition_penalty REPETITION_PENALTY (xtts only, optional) A penalty that prevents the autoregressive decoder from repeating itself. Default to config.json model. --top_k TOP_K (xtts only, optional) Top-k sampling. Lower values mean more likely outputs and increased audio generation speed. Default to config.json model. --top_p TOP_P (xtts only, optional) Top-p sampling. Lower values mean more likely outputs and increased audio generation speed. Default to config.json model. --speed SPEED (xtts only, optional) Speed factor for the speech generation. Default to config.json model. --enable_text_splitting (xtts only, optional) Enable TTS text splitting. This option is known to not be very efficient. Default to config.json model. --text_temp TEXT_TEMP (bark only, optional) Text Temperature for the model. Default to config.json model. --waveform_temp WAVEFORM_TEMP (bark only, optional) Waveform Temperature for the model. Default to config.json model. --output_dir OUTPUT_DIR (Optional) Path to the output directory. Default is set in ./lib/conf.py --abs_url ABS_URL Audiobookshelf server URL (e.g. http://localhost:13378). --abs_api_token ABS_API_TOKEN Audiobookshelf API token. --abs_library ABS_LIBRARY Audiobookshelf library ID. --version Show the version of the script and exit Example usage: Windows: Gradio/GUI: ebook2audiobook.cmd Headless mode: ebook2audiobook.cmd --headless --ebook '/path/to/file' --language eng Linux/Mac: Gradio/GUI: ./ebook2audiobook.command Headless mode: ./ebook2audiobook.command --headless --ebook '/path/to/file' --language eng 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 NOTE: in gradio/gui mode, to cancel a running conversion, just click on the [X] from the ebook upload component. TIP: if it needs some more pause, add ‘[pause:3]’ for 3 sec. etc. ### Docker 1. Clone the Repository: bash git clone https://github.com/DrewThomasson/ebook2audiobook.git cd ebook2audiobook 2. Build the container ``bash Windows: Docker: ebook2audiobook.cmd –script_mode build_docker Docker Compose: ebook2audiobook.cmd –script_mode build_docker –docker_mode compose Podman Compose: ebook2audiobook.cmd –script_mode build_docker –docker_mode podman Linux/Mac Docker: ./ebook2audiobook.command –script_mode build_docker Docker

Similar Articles

@wsl8297: Want to turn ebooks or documents into audiobooks? Many tools sound too robotic or lack subtitle sync, leaving you frustrated. Then I found the open-source project Abogen: it supports ePub, PDF, plain text, etc., one-click conversion to high-quality audio with auto-generated synchronized subtitles. It uses Kokoro voice at its core…

X AI KOLs Timeline

Abogen is an open-source tool that can convert documents like ePub and PDF into high-quality audio with one click, automatically generating synchronized subtitles. It supports a voice mixer and multiple deployment methods.

@Honcia13: The open-source tool that turns ebooks into audiobooks in seconds is here—Audiblez! Just drop in an EPUB and within minutes it outputs a high-quality M4B audiobook! It uses the Kokoro voice model with only 82M parameters, but the listening experience is incredibly natural. Highlights: Running Animal Farm on a T4 GPU takes only 5 minutes. Supports Chinese, English, and more…

X AI KOLs Timeline

Audiblez is an open-source tool that quickly converts EPUB ebooks into high-quality M4B audiobooks. It uses the Kokoro-82M voice model, supports multiple languages and a graphical interface, and can be installed with a single pip command.

@LinearUncle: Recommending an open-source voice cloning repository from a Chinese company called Mosi: MOSS-TTS. You read a passage, it clones your voice, then you can use your voice to read any text. Check the post details to see how I used it in practice—it works great and can be indistinguishable from the real thing. https://github.com/OpenMOS…

X AI KOLs Timeline

MOSS-TTS is an open-source voice cloning model introduced by Mosi Company. Users can clone a voice by reading a small amount of text, and then use the cloned voice to generate any speech with realistic results.

@XAMTO_AI: There's a treasure project on GitHub called EBOOK ETC that aggregates resources from WeChat Reading, JD Reading, and Himalaya for centralized management. ① Classic literature, business motivation, career entrepreneurship, technical manuals all available ② Tag classification + search function, finding books is super fast ③ Three formats: epub, mobi, azw3…

X AI KOLs Timeline

This is an open-source project on GitHub that aggregates ebook resources from multiple Chinese reading apps, categorizes them, and supports downloading in multiple formats.

@Jolyne_AI: A developer studying New Concept English wanted to practice listening and reading aloud, but kept getting tripped up by trivial things: finding audio separately, dragging the progress bar back and forth to jump to a specific sentence, interrupted rhythm, plummeting efficiency. So he made an open-source tool: NCE Flow, turning all four volumes of New Concept English into an online click-to-read learning system, solving the hassle of "finding audio, matching sentences, dragging the progress bar" all at once.

X AI KOLs Timeline

NCE Flow is an open-source tool that turns all four volumes of New Concept English into an online click-to-read learning system, featuring sentence-level click-to-play, multi-language views, variable speed and continuous playback, progress tracking, and more. It can be self-deployed via Docker or used directly online.