{"id":21956133,"url":"https://github.com/drewthomasson/ebook2audiobook","last_synced_at":"2026-05-02T21:05:21.400Z","repository":{"id":218620518,"uuid":"746935181","full_name":"DrewThomasson/ebook2audiobook","owner":"DrewThomasson","description":"Generate audiobooks from e-books, voice cloning \u0026 1158+ languages!","archived":false,"fork":false,"pushed_at":"2026-04-30T01:53:55.000Z","size":761726,"stargazers_count":18779,"open_issues_count":5,"forks_count":1550,"subscribers_count":87,"default_branch":"main","last_synced_at":"2026-04-30T03:34:26.970Z","etag":null,"topics":["audiobook","audiobooks","chinese","colab-notebook","docker","english","epub","gradio","kaggle","linux","mac","multilingual","tts","voice-cloning","windows","xtts"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DrewThomasson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"ko_fi":"athomasson2","custom":["https://secure.job-currency.com/boss/merchant_receive.lol?x=eyJ0YXJnZXQiOiJfYmxhbmsiLCJ3ZWJob29rIjoiemtBVTNsOFR5R2RKemV0VjVFQmJ3aUZIWFFhNE5RRVowYnNaVStFWnFFUUc1T2kwM09XcGZYNG84TUsrRmVXdkRKSUFFLzFiNVR6OVhlc01RSHBBVkpuMDVNUGxza2lhMEpleE1LazhiMDhDTXY2Q3hqakhXenNpcGRZenkva2RaMENudXp6NHlFUDdUbng4TTdPWHBkZGYrM0FjSjFwVkUrSE9SRDY5NlRjPSIsImNtZCI6Il9jb250cmlidXRpb24iLCJpdGVtIjoiVGhhbmtzIGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEiLCJjdXJyZW5jeSI6IkpPQiIsImFtb3VudCI6bnVsbCwidXJsX3JldHVybiI6bnVsbCwidXJsX3BhcmFtcyI6bnVsbCwiY21kRGVzYyI6IkNvbnRyaWJ1dGlvbiIsImJ0bldpZHRoIjoiMTI1IiwiYnRuSGVpZ2h0IjoiNDAiLCJyZWN1cnJlbmNlIjpudWxsfQ~~"]}},"created_at":"2024-01-22T23:49:55.000Z","updated_at":"2026-04-30T02:52:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"bb0321b4-1bcb-4525-94d2-ab3ccd933d5f","html_url":"https://github.com/DrewThomasson/ebook2audiobook","commit_stats":{"total_commits":420,"total_committers":7,"mean_commits":60.0,"dds":0.4642857142857143,"last_synced_commit":"ba8394402f55b1b4fbbcbbba212bb0b9cbc7606e"},"previous_names":["drewthomasson/ebook2audiobook","drewthomasson/ebook2audiobookxtts"],"tags_count":114,"template":false,"template_full_name":null,"purl":"pkg:github/DrewThomasson/ebook2audiobook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrewThomasson%2Febook2audiobook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrewThomasson%2Febook2audiobook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrewThomasson%2Febook2audiobook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrewThomasson%2Febook2audiobook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DrewThomasson","download_url":"https://codeload.github.com/DrewThomasson/ebook2audiobook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrewThomasson%2Febook2audiobook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32549412,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T19:18:06.202Z","status":"ssl_error","status_checked_at":"2026-05-02T19:16:21.335Z","response_time":132,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audiobook","audiobooks","chinese","colab-notebook","docker","english","epub","gradio","kaggle","linux","mac","multilingual","tts","voice-cloning","windows","xtts"],"created_at":"2024-11-29T08:04:45.962Z","updated_at":"2026-05-02T21:05:21.370Z","avatar_url":"https://github.com/DrewThomasson.png","language":"Python","funding_links":["https://ko-fi.com/athomasson2","https://secure.job-currency.com/boss/merchant_receive.lol?x=eyJ0YXJnZXQiOiJfYmxhbmsiLCJ3ZWJob29rIjoiemtBVTNsOFR5R2RKemV0VjVFQmJ3aUZIWFFhNE5RRVowYnNaVStFWnFFUUc1T2kwM09XcGZYNG84TUsrRmVXdkRKSUFFLzFiNVR6OVhlc01RSHBBVkpuMDVNUGxza2lhMEpleE1LazhiMDhDTXY2Q3hqakhXenNpcGRZenkva2RaMENudXp6NHlFUDdUbng4TTdPWHBkZGYrM0FjSjFwVkUrSE9SRDY5NlRjPSIsImNtZCI6Il9jb250cmlidXRpb24iLCJpdGVtIjoiVGhhbmtzIGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEiLCJjdXJyZW5jeSI6IkpPQiIsImFtb3VudCI6bnVsbCwidXJsX3JldHVybiI6bnVsbCwidXJsX3BhcmFtcyI6bnVsbCwiY21kRGVzYyI6IkNvbnRyaWJ1dGlvbiIsImJ0bldpZHRoIjoiMTI1IiwiYnRuSGVpZ2h0IjoiNDAiLCJyZWN1cnJlbmNlIjpudWxsfQ~~"],"categories":[],"sub_categories":[],"readme":"# 📚 ebook2audiobook\n\nConvert eBooks to audiobooks with chapters and metadata using Calibre and Coqui XTTS. Supports optional voice cloning and multiple languages!\n\n\n#### 🖥️ Web GUI Interface\n![demo_web_gui](https://github.com/user-attachments/assets/85af88a7-05dd-4a29-91de-76a14cf5ef06)\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see images of Web GUI\u003c/summary\u003e\n\u003cimg width=\"1728\" alt=\"image\" src=\"https://github.com/user-attachments/assets/b36c71cf-8e06-484c-a252-934e6b1d0c2f\"\u003e\n\u003cimg width=\"1728\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c0dab57a-d2d4-4658-bff9-3842ec90cb40\"\u003e\n\u003cimg width=\"1728\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0a99eeac-c521-4b21-8656-e064c1adc528\"\u003e\n\u003c/details\u003e\n\n## README.md\n- en [English](README.md)\n- zh_CN [简体中文](readme/README_CN.md)\n- ru [Русский](readme/README_RU.md)\n\n\n## 🌟 Features\n\n- 📖 Converts eBooks to text format with Calibre.\n- 📚 Splits eBook into chapters for organized audio.\n- 🎙️ High-quality text-to-speech with Coqui XTTS.\n- 🗣️ Optional voice cloning with your own voice file.\n- 🌍 Supports multiple languages (English by default).\n- 🖥️ Designed to run on 4GB RAM.\n\n## 🤗 [Huggingface space demo](https://huggingface.co/spaces/drewThomasson/ebook2audiobookXTTS)\n- Huggingface space is running on free cpu tier so expect very slow or timeout lol, just don't give it giant files is all\n- Best to duplicate space or run locally.\n\n## Free Google Colab [![Free Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/DrewThomasson/ebook2audiobookXTTS/blob/main/Notebooks/colab_ebook2audiobookxtts.ipynb)\n\n\n## 🛠️ Requirements\n\n- Python 3.10\n- `coqui-tts` Python package\n- Calibre (for eBook conversion)\n- FFmpeg (for audiobook creation)\n- Optional: Custom voice file for voice cloning\n\n\n### 🔧 Installation Instructions\n\n1. **Install Python 3.x** from [Python.org](https://www.python.org/downloads/).\n\n2. **Install Calibre**:\n   - **Ubuntu**: `sudo apt-get install -y calibre`\n   - **macOS**: `brew install calibre`\n   - **Windows** (Admin Powershell): `choco install calibre`\n\n3. **Install FFmpeg**:\n   - **Ubuntu**: `sudo apt-get install -y ffmpeg`\n   - **macOS**: `brew install ffmpeg`\n   - **Windows** (Admin Powershell): `choco install ffmpeg`\n\n4. **Optional: Install Mecab** (for non-Latin languages):\n   - **Ubuntu**: `sudo apt-get install -y mecab libmecab-dev mecab-ipadic-utf8`\n   - **macOS**: `brew install mecab`, `brew install mecab-ipadic`\n   - **Windows**: [mecab-website-to-install-manually](https://taku910.github.io/mecab/#download) (Note: Japanese support is limited)\n\n5. **Install Python packages**:\n   ```bash\n   pip install coqui-tts==0.24.2 pydub nltk beautifulsoup4 ebooklib tqdm gradio==4.44.0\n   \n   python -m nltk.downloader punkt\n   python -m nltk.downloader punkt_tab\n   ```\n\n   **For non-Latin languages**:\n   ```bash\n   pip install mecab mecab-python3 unidic\n   \n   python -m unidic download\n   ```\n\n## 🌐 Supported Languages\n\n- **English (en)**\n- **Spanish (es)**\n- **French (fr)**\n- **German (de)**\n- **Italian (it)**\n- **Portuguese (pt)**\n- **Polish (pl)**\n- **Turkish (tr)**\n- **Russian (ru)**\n- **Dutch (nl)**\n- **Czech (cs)**\n- **Arabic (ar)**\n- **Chinese (zh-cn)**\n- **Japanese (ja)**\n- **Hungarian (hu)**\n- **Korean (ko)**\n\nSpecify the language code when running the script in headless mode.\n## 🚀 Usage\n\n### 🖥️ Launching Gradio Web Interface\n\n1. **Run the Script**:\n   ```bash\n   python app.py\n   ```\n\n2. **Open the Web App**: Click the URL provided in the terminal to access the web app and convert eBooks.\n3. **For Public Link**: Add `--share True` to the end of it like this: `python app.py --share True`\n- **[For More Parameters]**: use the `-h` parameter like this `python app.py -h`\n\n### 📝 Basic Headless Usage\n\n```bash\npython app.py --headless True --ebook \u003cpath_to_ebook_file\u003e --voice [path_to_voice_file] --language [language_code]\n```\n\n- **\u003cpath_to_ebook_file\u003e**: Path to your eBook file.\n- **[path_to_voice_file]**: Optional for voice cloning.\n- **[language_code]**: Optional to specify language.\n- **[For More Parameters]**: use the `-h` parameter like this `python app.py -h`\n\n### 🧩 Headless Custom XTTS Model Usage\n\n```bash\npython app.py --headless True --use_custom_model True --ebook \u003cebook_file_path\u003e --voice \u003ctarget_voice_file_path\u003e --language \u003clanguage\u003e --custom_model \u003ccustom_model_path\u003e --custom_config \u003ccustom_config_path\u003e --custom_vocab \u003ccustom_vocab_path\u003e\n```\n\n- **\u003cebook_file_path\u003e**: Path to your eBook file.\n- **\u003ctarget_voice_file_path\u003e**: Optional for voice cloning.\n- **\u003clanguage\u003e**: Optional to specify language.\n- **\u003ccustom_model_path\u003e**: Path to `model.pth`.\n- **\u003ccustom_config_path\u003e**: Path to `config.json`.\n- **\u003ccustom_vocab_path\u003e**: Path to `vocab.json`.\n- **[For More Parameters]**: use the `-h` parameter like this `python app.py -h`\n\n\n### 🧩 Headless Custom XTTS Model Usage With Zip link to XTTS Fine-Tune Model 🌐\n\n```bash\npython app.py --headless True --use_custom_model True --ebook \u003cebook_file_path\u003e --voice \u003ctarget_voice_file_path\u003e --language \u003clanguage\u003e --custom_model_url \u003ccustom_model_URL_ZIP_path\u003e\n```\n\n- **\u003cebook_file_path\u003e**: Path to your eBook file.\n- **\u003ctarget_voice_file_path\u003e**: Optional for voice cloning.\n- **\u003clanguage\u003e**: Optional to specify language.\n- **\u003ccustom_model_URL_ZIP_path\u003e**: URL Path to zip of Model folder. For Example this for the [xtts_David_Attenborough_fine_tune](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/tree/main) `https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/resolve/main/Finished_model_files.zip?download=true`\n- For a custom model a ref audio clip of the voice will also be needed:\n[ref audio clip of David Attenborough](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/blob/main/ref.wav)\n- **[For More Parameters]**: use the `-h` parameter like this `python app.py -h`\n\n### 🔍 For Detailed Guide with list of all Parameters to use\n```bash\npython app.py -h\n```\n- This will output the following:\n```bash\nusage: app.py [-h] [--share SHARE] [--headless HEADLESS] [--ebook EBOOK] [--voice VOICE]\n              [--language LANGUAGE] [--use_custom_model USE_CUSTOM_MODEL]\n              [--custom_model CUSTOM_MODEL] [--custom_config CUSTOM_CONFIG]\n              [--custom_vocab CUSTOM_VOCAB] [--custom_model_url CUSTOM_MODEL_URL]\n              [--temperature TEMPERATURE] [--length_penalty LENGTH_PENALTY]\n              [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P]\n              [--speed SPEED] [--enable_text_splitting ENABLE_TEXT_SPLITTING]\n\nConvert eBooks to Audiobooks using a Text-to-Speech model. You can either launch the\nGradio interface or run the script in headless mode for direct conversion.\n\noptions:\n  -h, --help            show this help message and exit\n  --share SHARE         Set to True to enable a public shareable Gradio link. Defaults\n                        to False.\n  --headless HEADLESS   Set to True to run in headless mode without the Gradio\n                        interface. Defaults to False.\n  --ebook EBOOK         Path to the ebook file for conversion. Required in headless\n                        mode.\n  --voice VOICE         Path to the target voice file for TTS. Optional, uses a default\n                        voice if not provided.\n  --language LANGUAGE   Language for the audiobook conversion. Options: en, es, fr, de,\n                        it, pt, pl, tr, ru, nl, cs, ar, zh-cn, ja, hu, ko. Defaults to\n                        English (en).\n  --use_custom_model USE_CUSTOM_MODEL\n                        Set to True to use a custom TTS model. Defaults to False. Must\n                        be True to use custom models, otherwise you'll get an error.\n  --custom_model CUSTOM_MODEL\n                        Path to the custom model file (.pth). Required if using a custom\n                        model.\n  --custom_config CUSTOM_CONFIG\n                        Path to the custom config file (config.json). Required if using\n                        a custom model.\n  --custom_vocab CUSTOM_VOCAB\n                        Path to the custom vocab file (vocab.json). Required if using a\n                        custom model.\n  --custom_model_url CUSTOM_MODEL_URL\n                        URL to download the custom model as a zip file. Optional, but\n                        will be used if provided. Examples include David Attenborough's\n                        model: 'https://huggingface.co/drewThomasson/xtts_David_Attenbor\n                        ough_fine_tune/resolve/main/Finished_model_files.zip?download=tr\n                        ue'. More XTTS fine-tunes can be found on my Hugging Face at\n                        'https://huggingface.co/drewThomasson'.\n  --temperature TEMPERATURE\n                        Temperature for the model. Defaults to 0.65. Higher Tempatures\n                        will lead to more creative outputs IE: more Hallucinations.\n                        Lower Tempatures will be more monotone outputs IE: less\n                        Hallucinations.\n  --length_penalty LENGTH_PENALTY\n                        A length penalty applied to the autoregressive decoder. Defaults\n                        to 1.0. Not applied to custom models.\n  --repetition_penalty REPETITION_PENALTY\n                        A penalty that prevents the autoregressive decoder from\n                        repeating itself. Defaults to 2.0.\n  --top_k TOP_K         Top-k sampling. Lower values mean more likely outputs and\n                        increased audio generation speed. Defaults to 50.\n  --top_p TOP_P         Top-p sampling. Lower values mean more likely outputs and\n                        increased audio generation speed. Defaults to 0.8.\n  --speed SPEED         Speed factor for the speech generation. IE: How fast the\n                        Narrerator will speak. Defaults to 1.0.\n  --enable_text_splitting ENABLE_TEXT_SPLITTING\n                        Enable splitting text into sentences. Defaults to True.\n\nExample: python script.py --headless --ebook path_to_ebook --voice path_to_voice\n--language en --use_custom_model True --custom_model model.pth --custom_config\nconfig.json --custom_vocab vocab.json\n```\n\n\n\u003cdetails\u003e\n  \u003csummary\u003e⚠️ Legacy-Depricated Old Use Instructions\u003c/summary\u003e\n   \n## 🚀 Usage\n\n## Legacy files have been moved to `ebook2audiobookXTTS/legacy/`\n\n### 🖥️ Gradio Web Interface\n\n1. **Run the Script**:\n   ```bash\n   python custom_model_ebook2audiobookXTTS_gradio.py\n   ```\n\n2. **Open the Web App**: Click the URL provided in the terminal to access the web app and convert eBooks.\n\n### 📝 Basic Usage\n\n```bash\npython ebook2audiobook.py \u003cpath_to_ebook_file\u003e [path_to_voice_file] [language_code]\n```\n\n- **\u003cpath_to_ebook_file\u003e**: Path to your eBook file.\n- **[path_to_voice_file]**: Optional for voice cloning.\n- **[language_code]**: Optional to specify language.\n\n### 🧩 Custom XTTS Model\n\n```bash\npython custom_model_ebook2audiobookXTTS.py \u003cebook_file_path\u003e \u003ctarget_voice_file_path\u003e \u003clanguage\u003e \u003ccustom_model_path\u003e \u003ccustom_config_path\u003e \u003ccustom_vocab_path\u003e\n```\n\n- **\u003cebook_file_path\u003e**: Path to your eBook file.\n- **\u003ctarget_voice_file_path\u003e**: Optional for voice cloning.\n- **\u003clanguage\u003e**: Optional to specify language.\n- **\u003ccustom_model_path\u003e**: Path to `model.pth`.\n- **\u003ccustom_config_path\u003e**: Path to `config.json`.\n- **\u003ccustom_vocab_path\u003e**: Path to `vocab.json`.\n\u003c/details\u003e\n\n### 🐳 Using Docker\n\nYou can also use Docker to run the eBook to Audiobook converter. This method ensures consistency across different environments and simplifies setup.\n\n#### 🚀 Running the Docker Container\n\nTo run the Docker container and start the Gradio interface, use the following command:\n\n -Run with CPU only\n```powershell\ndocker run -it --rm -p 7860:7860 --platform=linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py\n```\n -Run with GPU Speedup (Nvida graphics cards only)\n```powershell\ndocker run -it --rm --gpus all -p 7860:7860 --platform=linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py\n```\n\nThis command will start the Gradio interface on port 7860.(localhost:7860)\n- For more options like running the docker in headless mode or making the gradio link public add the `-h` parameter after the `app.py` in the docker launch command\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cstrong\u003eExample of using docker in headless mode or modifying anything with the extra parameters + Full guide\u003c/strong\u003e\u003c/summary\u003e\n   \n## Example of using docker in headless mode\n\nfirst for a docker pull of the latest with\n```bash \ndocker pull athomasson2/ebook2audiobookxtts:huggingface\n```\n\n- Before you do run this you need to create a dir named \"input-folder\" in your current dir which will be linked, This is where you can put your input files for the docker image to see\n```bash\nmkdir input-folder \u0026\u0026 mkdir Audiobooks\n```\n\n- In the command below swap out **YOUR_INPUT_FILE.TXT** with the name of your input file \n\n```bash\ndocker run -it --rm \\\n    -v $(pwd)/input-folder:/home/user/app/input_folder \\\n    -v $(pwd)/Audiobooks:/home/user/app/Audiobooks \\\n    --platform linux/amd64 \\\n    athomasson2/ebook2audiobookxtts:huggingface \\\n    python app.py --headless True --ebook /home/user/app/input_folder/YOUR_INPUT_FILE.TXT\n```\n\n- And that should be it! \n\n- The output Audiobooks will be found in the Audiobook folder which will also be located in your local dir you ran this docker command in\n\n\n## To get the help command for the other parameters this program has you can run this \n\n```bash\ndocker run -it --rm \\\n    --platform linux/amd64 \\\n    athomasson2/ebook2audiobookxtts:huggingface \\\n    python app.py -h\n\n```\n\n\nand that will output this \n\n```bash\nuser/app/ebook2audiobookXTTS/input-folder -v $(pwd)/Audiobooks:/home/user/app/ebook2audiobookXTTS/Audiobooks --memory=\"4g\" --network none --platform linux/amd64 athomasson2/ebook2audiobookxtts:huggingface python app.py -h\nstarting...\nusage: app.py [-h] [--share SHARE] [--headless HEADLESS] [--ebook EBOOK] [--voice VOICE]\n              [--language LANGUAGE] [--use_custom_model USE_CUSTOM_MODEL]\n              [--custom_model CUSTOM_MODEL] [--custom_config CUSTOM_CONFIG]\n              [--custom_vocab CUSTOM_VOCAB] [--custom_model_url CUSTOM_MODEL_URL]\n              [--temperature TEMPERATURE] [--length_penalty LENGTH_PENALTY]\n              [--repetition_penalty REPETITION_PENALTY] [--top_k TOP_K] [--top_p TOP_P]\n              [--speed SPEED] [--enable_text_splitting ENABLE_TEXT_SPLITTING]\n\nConvert eBooks to Audiobooks using a Text-to-Speech model. You can either launch the\nGradio interface or run the script in headless mode for direct conversion.\n\noptions:\n  -h, --help            show this help message and exit\n  --share SHARE         Set to True to enable a public shareable Gradio link. Defaults\n                        to False.\n  --headless HEADLESS   Set to True to run in headless mode without the Gradio\n                        interface. Defaults to False.\n  --ebook EBOOK         Path to the ebook file for conversion. Required in headless\n                        mode.\n  --voice VOICE         Path to the target voice file for TTS. Optional, uses a default\n                        voice if not provided.\n  --language LANGUAGE   Language for the audiobook conversion. Options: en, es, fr, de,\n                        it, pt, pl, tr, ru, nl, cs, ar, zh-cn, ja, hu, ko. Defaults to\n                        English (en).\n  --use_custom_model USE_CUSTOM_MODEL\n                        Set to True to use a custom TTS model. Defaults to False. Must\n                        be True to use custom models, otherwise you'll get an error.\n  --custom_model CUSTOM_MODEL\n                        Path to the custom model file (.pth). Required if using a custom\n                        model.\n  --custom_config CUSTOM_CONFIG\n                        Path to the custom config file (config.json). Required if using\n                        a custom model.\n  --custom_vocab CUSTOM_VOCAB\n                        Path to the custom vocab file (vocab.json). Required if using a\n                        custom model.\n  --custom_model_url CUSTOM_MODEL_URL\n                        URL to download the custom model as a zip file. Optional, but\n                        will be used if provided. Examples include David Attenborough's\n                        model: 'https://huggingface.co/drewThomasson/xtts_David_Attenbor\n                        ough_fine_tune/resolve/main/Finished_model_files.zip?download=tr\n                        ue'. More XTTS fine-tunes can be found on my Hugging Face at\n                        'https://huggingface.co/drewThomasson'.\n  --temperature TEMPERATURE\n                        Temperature for the model. Defaults to 0.65. Higher Tempatures\n                        will lead to more creative outputs IE: more Hallucinations.\n                        Lower Tempatures will be more monotone outputs IE: less\n                        Hallucinations.\n  --length_penalty LENGTH_PENALTY\n                        A length penalty applied to the autoregressive decoder. Defaults\n                        to 1.0. Not applied to custom models.\n  --repetition_penalty REPETITION_PENALTY\n                        A penalty that prevents the autoregressive decoder from\n                        repeating itself. Defaults to 2.0.\n  --top_k TOP_K         Top-k sampling. Lower values mean more likely outputs and\n                        increased audio generation speed. Defaults to 50.\n  --top_p TOP_P         Top-p sampling. Lower values mean more likely outputs and\n                        increased audio generation speed. Defaults to 0.8.\n  --speed SPEED         Speed factor for the speech generation. IE: How fast the\n                        Narrerator will speak. Defaults to 1.0.\n  --enable_text_splitting ENABLE_TEXT_SPLITTING\n                        Enable splitting text into sentences. Defaults to True.\n\nExample: python script.py --headless --ebook path_to_ebook --voice path_to_voice\n--language en --use_custom_model True --custom_model model.pth --custom_config\nconfig.json --custom_vocab vocab.json\n```\n\u003c/details\u003e\n\n#### 🖥️ Docker GUI \n![demo_web_gui](https://github.com/user-attachments/assets/85af88a7-05dd-4a29-91de-76a14cf5ef06)\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick to see images of Web GUI\u003c/summary\u003e\n\u003cimg width=\"1728\" alt=\"image\" src=\"https://github.com/user-attachments/assets/b36c71cf-8e06-484c-a252-934e6b1d0c2f\"\u003e\n\u003cimg width=\"1728\" alt=\"image\" src=\"https://github.com/user-attachments/assets/c0dab57a-d2d4-4658-bff9-3842ec90cb40\"\u003e\n\u003cimg width=\"1728\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0a99eeac-c521-4b21-8656-e064c1adc528\"\u003e\n\u003c/details\u003e\n### 🛠️ For Custom Xtts Models\n\nModels built to be better at a specific voice. Check out my Hugging Face page [here](https://huggingface.co/drewThomasson).\n\nTo use a custom model, paste the link of the `Finished_model_files.zip` file like this:\n\n[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)\n\nFor a custom model a ref audio clip of the voice will also be needed:\n[ref audio clip of David Attenborough](https://huggingface.co/drewThomasson/xtts_David_Attenborough_fine_tune/blob/main/ref.wav)\n\n\n\nMore details can be found at the [Dockerfile Hub Page]([https://github.com/DrewThomasson/ebook2audiobookXTTS](https://hub.docker.com/repository/docker/athomasson2/ebook2audiobookxtts/general)).\n\n## 🌐 Fine Tuned Xtts models\n\nTo 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.\n\n## 🎥 Demos\n\nRainy day voice\n\nhttps://github.com/user-attachments/assets/8486603c-38b1-43ce-9639-73757dfb1031\n\nDavid Attenborough voice\n\nhttps://github.com/user-attachments/assets/47c846a7-9e51-4eb9-844a-7460402a20a8\n\n\n## 🤗 [Huggingface space demo](https://huggingface.co/spaces/drewThomasson/ebook2audiobookXTTS)\n- Huggingface space is running on free cpu tier so expect very slow or timeout lol, just don't give it giant files is all\n- Best to duplicate space or run locally.\n\n## Free Google Colab [![Free Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/DrewThomasson/ebook2audiobookXTTS/blob/main/Notebooks/colab_ebook2audiobookxtts.ipynb)\n\n\n\n## 📚 Supported eBook Formats\n\n- `.epub`, `.pdf`, `.mobi`, `.txt`, `.html`, `.rtf`, `.chm`, `.lit`, `.pdb`, `.fb2`, `.odt`, `.cbr`, `.cbz`, `.prc`, `.lrf`, `.pml`, `.snb`, `.cbc`, `.rb`, `.tcr`\n- **Best results**: `.epub` or `.mobi` for automatic chapter detection\n\n## 📂 Output\n\n- Creates an `.m4b` file with metadata and chapters.\n- **Example Output**: ![Example](https://github.com/DrewThomasson/VoxNovel/blob/dc5197dff97252fa44c391dc0596902d71278a88/readme_files/example_in_app.jpeg)\n\n## 🛠️ Common Issues:\n- \"It's slow!\" - On CPU only this is very slow, and you can only get speedups though a NVIDIA GPU. [Discussion about this](https://github.com/DrewThomasson/ebook2audiobookXTTS/discussions/19#discussioncomment-10879846) For faster multilingual generation I would suggest my other [project that uses piper-tts](https://github.com/DrewThomasson/ebook2audiobookpiper-tts) instead(It doesn't have zero-shot voice cloning though, and is siri quality voices, but it is much faster on cpu.)\n- \"I'm having dependency issues\" - Just use the docker, its fully self contained and has a headless mode, add `-h` parameter after the `app.py` in the docker run command for more information.\n- \"Im getting a truncated audio issue!\" - PLEASE MAKE AN ISSUE OF THIS, I don't speak every language and I need advise from each person to fine tune my sentense splitting function on any other languages.😊\n- \"The loading bar is stuck at 30% in the web gui!\" - The web gui loading bar is extreamly basic as its just split between the three loading steps, refer to the terminal and what sentense it's on for a more accurate gauge on where is it progress wise.\n\n## What I need help with! 🙌 \n## [Full list of things can be found here](https://github.com/DrewThomasson/ebook2audiobookXTTS/issues/32)\n- Any help from people speaking any of the supported langues to help with proper sentence splitting methods\n- Potentially creating readme Guides for Multiple languages(Becuase the only language I know is English 😔)\n\n## 🙏 Special Thanks\n\n- **Coqui TTS**: [Coqui TTS GitHub](https://github.com/coqui-ai/TTS)\n- **Calibre**: [Calibre Website](https://calibre-ebook.com)\n\n- [@shakenbake15 for better chapter saving method](https://github.com/DrewThomasson/ebook2audiobookXTTS/issues/8) \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewthomasson%2Febook2audiobook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrewthomasson%2Febook2audiobook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewthomasson%2Febook2audiobook/lists"}