Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/drewthomasson/ebook2audiobookespeak

Create audiobooks with espeak in a gradio interface gui easy
https://github.com/drewthomasson/ebook2audiobookespeak

audiobooks docker epub espeak gradio tts

Last synced: about 10 hours ago
JSON representation

Create audiobooks with espeak in a gradio interface gui easy

Awesome Lists containing this project

README

        

# 📚 eBook to Audiobook Converter with eSpeak-ng

Convert eBooks to audiobooks with chapters and metadata using Calibre and eSpeak-ng. Supports multiple languages and customizable voice settings!

## 🌟 Features

- 📖 Converts eBooks to text format using Calibre.
- 📚 Splits eBooks into chapters for organized audio.
- 🎙️ High-quality text-to-speech using eSpeak-ng.
- 🌍 Supports multiple languages and accents.
- 🎛️ Customizable voice, speed, and pitch settings.
- 🖥️ User-friendly Gradio web interface.
- ⚡ Designed to run lighting fast on only 100 MB ram.

## 🛠️ Requirements

- Python 3.x
- `gradio` Python package
- Calibre (for eBook conversion)
- FFmpeg (for audiobook creation)
- eSpeak-ng (for text-to-speech)

## 🖥️ Gradio Web Gui
Screenshot 2024-08-17 at 4 42 16 PM

Screenshot 2024-08-17 at 4 42 22 PM

### 🔧 Installation Instructions

1. **Install Python 3.x** from [Python.org](https://www.python.org/downloads/).

2. **Install Calibre**:
- **Ubuntu**: `sudo apt-get install -y calibre`
- **macOS**: `brew install calibre`
- **Windows** (Admin Powershell): `choco install calibre`

3. **Install FFmpeg**:
- **Ubuntu**: `sudo apt-get install -y ffmpeg`
- **macOS**: `brew install ffmpeg`
- **Windows** (Admin Powershell): `choco install ffmpeg`

4. **Install eSpeak-ng**:
- **Ubuntu**: `sudo apt-get install -y espeak-ng`
- **macOS**: `brew install espeak-ng`
- **Windows** (Admin Powershell): `choco install espeak-ng`

5. **Install Python packages**:
```bash
pip install gradio bs4 pydub nltk beautifulsoup4 ebooklib tqdm
```

**For non-Latin languages**:
```bash
python -m nltk.downloader punkt
```

## 🌐 Supported Languages and Voices

eSpeak-ng provides a variety of voices for different languages and accents:

- **Afrikaans**: `af`
- **Amharic**: `am`
- **Arabic**: `ar`
- **Bengali**: `bn`
- **Bosnian**: `bs`
- **Catalan**: `ca`
- **Chinese (Mandarin)**: `cmn`
- **Croatian**: `hr`
- **Czech**: `cs`
- **Danish**: `da`
- **Dutch**: `nl`
- **English (Great Britain)**: `en-gb`
- **English (America)**: `en-us`
- **Esperanto**: `eo`
- **Finnish**: `fi`
- **French**: `fr`
- **German**: `de`
- **Greek**: `el`
- **Hindi**: `hi`
- **Hungarian**: `hu`
- **Icelandic**: `is`
- **Italian**: `it`
- **Japanese**: `ja`
- **Korean**: `ko`
- **Latvian**: `lv`
- **Macedonian**: `mk`
- **Norwegian (Bokmål)**: `nb`
- **Polish**: `pl`
- **Portuguese (Brazil)**: `pt-br`
- **Portuguese (Portugal)**: `pt`
- **Russian**: `ru`
- **Spanish (Spain)**: `es`
- **Swedish**: `sv`
- **Turkish**: `tr`
- **Vietnamese**: `vi`
- **Welsh**: `cy`

## 🚀 Usage

### 🖥️ Gradio Web Interface

1. **Run the Script**:
```bash
python gradio_launch.py
```

2. **Open the Web App**: Click the URL provided in the terminal to access the web app and convert eBooks.

## 🐳 Using Docker

You can also use Docker to run the eBook to Audiobook converter. This method ensures consistency across different environments and simplifies setup.

### 🚀 Running the Docker Container

To run the Docker container and start the Gradio interface, use the following command:

```bash
docker run -it --rm -p 7860:7860 athomasson2/ebook2audiobookespeak:latest
```

This command will start the Gradio interface on port 7860. (localhost:7860)

For more details, visit the [Docker Hub Page](https://hub.docker.com/repository/docker/athomasson2/ebook2audiobookespeak/general).

## 📚 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

- Creates an `.m4b` file with metadata and chapters.

## 🎥 Demo
https://github.com/user-attachments/assets/4decbfc3-b934-498a-935e-180336ecadc4

## 🙏 Special Thanks

- **eSpeak-ng**: [eSpeak-ng GitHub](https://github.com/espeak-ng/espeak-ng)
- **Calibre**: [Calibre Website](https://calibre-ebook.com)
- **Inspiration from Smiling friends Spamtopia episode Season 2 Episode 7**
![maxresdefault](https://github.com/user-attachments/assets/a6c34117-36d6-4b20-b8c5-b58066a867fe)