ebook2audiobook / README.md
drewThomasson's picture
Update README.md
f3987d6 verified
|
raw
history blame
6.01 kB
---
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)