Spaces:
Running
Running
title: Ebook2audiobookXTTS | |
emoji: πΈπ | |
colorFrom: red | |
colorTo: yellow | |
sdk: gradio | |
sdk_version: 4.44.0 | |
app_file: app.py | |
pinned: false | |
license: mit | |
short_description: Convert any Ebook to AudioBook with Xtts + VoiceCloning! | |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |
# π ebook2audiobookXTTS | |
Convert eBooks to audiobooks with chapters and metadata using Calibre and Coqui XTTS. Supports optional voice cloning and multiple languages! | |
## π Features | |
- π Converts eBooks to text format with Calibre. | |
- π Splits eBook into chapters for organized audio. | |
- ποΈ High-quality text-to-speech with Coqui XTTS. | |
- π£οΈ Optional voice cloning with your own voice file. | |
- π Supports multiple languages (English by default). | |
- π₯οΈ Designed to run on 4GB RAM. | |
## π οΈ Requirements | |
- Python 3.x | |
- `coqui-tts` Python package | |
- Calibre (for eBook conversion) | |
- FFmpeg (for audiobook creation) | |
- Optional: Custom voice file for voice cloning | |
### π§ 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. **Optional: Install Mecab** (for non-Latin languages): | |
- **Ubuntu**: `sudo apt-get install -y mecab libmecab-dev mecab-ipadic-utf8` | |
- **macOS**: `brew install mecab`, `brew install mecab-ipadic` | |
- **Windows** (Admin Powershell): `choco install mecab` (Note: Japanese support is limited) | |
5. **Install Python packages**: | |
```bash | |
pip install tts==0.21.3 pydub nltk beautifulsoup4 ebooklib tqdm | |
``` | |
**For non-Latin languages**: | |
```bash | |
python -m unidic download | |
pip install mecab mecab-python3 unidic | |
``` | |
## π Supported Languages | |
- **English (en)** | |
- **Spanish (es)** | |
- **French (fr)** | |
- **German (de)** | |
- **Italian (it)** | |
- **Portuguese (pt)** | |
- **Polish (pl)** | |
- **Turkish (tr)** | |
- **Russian (ru)** | |
- **Dutch (nl)** | |
- **Czech (cs)** | |
- **Arabic (ar)** | |
- **Chinese (zh-cn)** | |
- **Japanese (ja)** | |
- **Hungarian (hu)** | |
- **Korean (ko)** | |
Specify the language code when running the script. | |
## π Usage | |
### π₯οΈ Gradio Web Interface | |
1. **Run the Script**: | |
```bash | |
python custom_model_ebook2audiobookXTTS_gradio.py | |
``` | |
2. **Open the Web App**: Click the URL provided in the terminal to access the web app and convert eBooks. | |
### π Basic Usage | |
```bash | |
python ebook2audiobook.py <path_to_ebook_file> [path_to_voice_file] [language_code] | |
``` | |
- **<path_to_ebook_file>**: Path to your eBook file. | |
- **[path_to_voice_file]**: Optional for voice cloning. | |
- **[language_code]**: Optional to specify language. | |
### 𧩠Custom XTTS Model | |
```bash | |
python custom_model_ebook2audiobookXTTS.py <ebook_file_path> <target_voice_file_path> <language> <custom_model_path> <custom_config_path> <custom_vocab_path> | |
``` | |
- **<ebook_file_path>**: Path to your eBook file. | |
- **<target_voice_file_path>**: Optional for voice cloning. | |
- **<language>**: Optional to specify language. | |
- **<custom_model_path>**: Path to `model.pth`. | |
- **<custom_config_path>**: Path to `config.json`. | |
- **<custom_vocab_path>**: Path to `vocab.json`. | |
### π³ 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: | |
-Run with CPU only | |
```powershell | |
docker run -it --rm -p 7860:7860 athomasson2/ebook2audiobookxtts:latest | |
``` | |
-Run with GPU Speedup (Nvida graphics cards only) | |
```powershell | |
docker run -it --rm --gpus all -p 7860:7860 athomasson2/ebook2audiobookxtts:latest | |
``` | |
This command will start the Gradio interface on port 7860.(localhost:7860) | |
#### π₯οΈ Docker GUI | |
<img width="1401" alt="Screenshot 2024-08-25 at 10 08 40β―AM" src="https://github.com/user-attachments/assets/78cfd33e-cd46-41cc-8128-3820160a5e40"> | |
<img width="1406" alt="Screenshot 2024-08-25 at 10 08 51β―AM" src="https://github.com/user-attachments/assets/dbfad9f6-e6e5-4cad-b248-adb76c5434f3"> | |
### π οΈ For Custom Xtts Models | |
Models built to be better at a specific voice. Check out my Hugging Face page [here](https://huggingface.co/drewThomasson). | |
To use a custom model, paste the link of the `Finished_model_files.zip` file like this: | |
[David Attenborough fine tuned Finished_model_files.zip](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true) | |
More details can be found at the [Dockerfile Hub Page]([https://github.com/DrewThomasson/ebook2audiobookXTTS](https://hub.docker.com/repository/docker/athomasson2/ebook2audiobookxtts/general)). | |
## π Fine Tuned Xtts models | |
To find already fine-tuned XTTS models, visit [this Hugging Face link](https://huggingface.co/drewThomasson) π. Search for models that include "xtts fine tune" in their names. | |
## π₯ Demos | |
https://github.com/user-attachments/assets/8486603c-38b1-43ce-9639-73757dfb1031 | |
## π 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. | |
- **Example Output**: ![Example](https://github.com/DrewThomasson/VoxNovel/blob/dc5197dff97252fa44c391dc0596902d71278a88/readme_files/example_in_app.jpeg) | |
## π Special Thanks | |
- **Coqui TTS**: [Coqui TTS GitHub](https://github.com/coqui-ai/TTS) | |
- **Calibre**: [Calibre Website](https://calibre-ebook.com) |