Back to Ebook2audiobook

📚 ebook2audiobook (E2A)

readme/README_ces.md

26.6.932.7 KB
Original Source

📚 ebook2audiobook (E2A)

CPU/GPU převodník z e-knihy na audioknihu s kapitolami a metadaty

s využitím pokročilých TTS enginů a mnoha dalšího.

Podporuje klonování hlasu a 1158 jazyků!

[!IMPORTANT] Tento nástroj je určen pouze pro použití s e-knihami bez DRM, získanými legálně.

Autoři nenesou odpovědnost za jakékoli zneužití tohoto softwaru ani za případné právní následky.

Používejte tento nástroj zodpovědně a v souladu se všemi platnými zákony.

Děkujeme za podporu vývojářů ebook2audiobook!

Spuštění lokálně

<a href="https://github.com/DrewThomasson/ebook2audiobook">

</a><a href="https://hub.docker.com/r/athomasson2/ebook2audiobook">

</a>

Spuštění vzdáleně

Grafické rozhraní (GUI)

<details> <summary>Klikněte pro zobrazení obrázků webového GUI</summary> </details>

Ukázky

Ukázka nového výchozího hlasu

https://github.com/user-attachments/assets/750035dc-e355-46f1-9286-05c1d9e88cea

<details> <summary>Více ukázek</summary>

Hlas ASMR

https://github.com/user-attachments/assets/68eee9a1-6f71-4903-aacd-47397e47e422

Hlas deštivého dne

https://github.com/user-attachments/assets/d25034d9-c77f-43a9-8f14-0d167172b080

Hlas Scarlett

https://github.com/user-attachments/assets/b12009ee-ec0d-45ce-a1ef-b3a52b9f8693

Hlas Davida Attenborougha

https://github.com/user-attachments/assets/81c4baad-117e-4db5-ac86-efc2b7fea921

Příklad

</details>

README.md

Obsah

Funkce

  • 🔧 Podporované TTS enginy: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS

  • 📚 Převod více formátů souborů: .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, .zip

  • 💻 Textové pole pro přímý převod krátkého textu na zvuk

  • 🔍 OCR skenování pro soubory s textovými stránkami ve formě obrázků

  • 🔊 Vysoce kvalitní převod textu na řeč, od téměř reálného času po téměř skutečný hlas

  • 🗣️ Volitelné klonování hlasu pomocí vlastního hlasového souboru

  • 🌐 Podporuje 1158 jazyků (supported languages list)

  • 💻 Vhodné pro omezené zdroje — běží na 2 GB RAM / 1 GB VRAM (minimum)

  • 🎵 Výstupní formáty audioknihy: mono or stereo aac, flac, mp3, m4b, m4a, mp4, mov, ogg, wav, webm

  • 🧠 Podpora SML tagů — jemné ovládání přerušení, pauz, přepínání hlasu a dalšího (see below)

  • 🧩 Volitelný vlastní model pomocí vašeho vlastního natrénovaného modelu (XTTSv2, VITS, FAIRSEQ, PIPER, others on request)

  • 🎛️ Doladěné přednastavené modely natrénované týmem E2A

    <i>(Kontaktujte nás, pokud potřebujete další doladěné modely, nebo pokud chcete sdílet ty své v oficiálním seznamu předvoleb)</i>

Hardwarové požadavky

  • 2 GB RAM min., 8 GB doporučeno.
  • 1 GB VRAM min., 4 GB doporučeno.
  • Povolená virtualizace při spuštění ve Windows (pouze Docker).
  • CPU, XPU (intel, AMD, ARM)*.
  • CUDA, ROCm, JETSON
  • MPS (CPU Apple Silicon)

*<i> Moderní TTS enginy jsou na CPU velmi pomalé, používejte tedy TTS nižší kvality jako YourTTS, Tacotron2 atd.</i>

Podporované jazyky

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)

Podporované formáty e-knih

  • .epub, .pdf, .mobi, .txt, .html, .rtf, .chm, .lit, .pdb, .fb2, .odt, .cbr, .cbz, .prc, .lrf, .pml, .snb, .cbc, .rb, .tcr
  • Nejlepší výsledky: .epub nebo .mobi pro automatickou detekci kapitol

Formáty výstupu a zpracování

  • .m4b, .m4a, .mp4, .webm, .mov, .mp3, .flac, .wav, .ogg, .aac
  • Formát zpracování lze změnit v lib/conf.py

Dostupné SML tagy

  • [break] — ticho (náhodný rozsah 0.3–0.6 sec.)
  • [pause] — ticho (náhodný rozsah 1.0–1.6 sec.)
  • [pause:N] — pevná pauza (N sec.)
  • [voice:/path/to/voice/file]...[/voice] — přepnutí hlasu z výchozího nebo vybraného hlasu z GUI/CLI

Podívejte se na náš další repozitář věnovaný automatickému přidávání SML do vaší e-knihy -> E2A-SML

[!IMPORTANT] **Než nahlásíte problém s instalací nebo chybu, pečlivě prohledejte záložku otevřených a uzavřených issues

abyste se ujistili, že váš problém ještě neexistuje.**

[!NOTE] **Formát EPUB postrádá jakoukoli standardní strukturu definující, co je kapitola, odstavec, předmluva atd.

Proto byste měli nejprve ručně odstranit veškerý text, který nechcete převádět na zvuk.**

Pokyny

  1. Naklonujte repozitář

    bash
    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. Nainstalujte / Spusťte ebook2audiobook:

    • Linux/MacOS

      bash
      ./ebook2audiobook.command
      

      <i>Poznámka pro uživatele macOS: pro instalaci chybějících programů se instaluje homebrew.</i>

    • Spouštěč pro Mac
      Dvakrát klikněte na Mac Ebook2Audiobook Launcher.command

    • Windows

      bash
      ebook2audiobook.cmd
      

      nebo Dvakrát klikněte na ebook2audiobook.cmd

      <i>Poznámka pro uživatele Windows: pro instalaci chybějících programů bez administrátorských oprávnění se instaluje scoop.</i>

  3. Otevřete webovou aplikaci: Klikněte na adresu URL uvedenou v terminálu pro přístup k webové aplikaci a převod e-knih. http://localhost:7860/

  4. Pro veřejný odkaz: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (all OS)

[!IMPORTANT] **Pokud je skript zastaven a znovu spuštěn, musíte obnovit své grafické rozhraní Gradio

aby se webová stránka mohla znovu připojit k novému připojovacímu socketu.**

Základní použití

  • Linux/MacOS:

    bash
    ./ebook2audiobook.command --headless --ebook <path_to_ebook_file> --voice <path_to_voice_file> --language <language_code>
    
  • Windows

    bash
    ebook2audiobook.cmd --headless --ebook <path_to_ebook_file> --voice <path_to_voice_file> --language <language_code>
    
  • [--ebook]: Cesta k souboru vaší e-knihy

  • [--voice]: Cesta k souboru pro klonování hlasu (volitelné)

  • [--language]: Kód jazyka v ISO-639-3 (např.: ita pro italštinu, eng pro angličtinu, deu pro němčinu...).

    Výchozí jazyk je eng a --language je volitelný pro výchozí jazyk nastavený v ./lib/lang.py.

    Podporovány jsou také dvoupísmenné kódy ISO-639-1.

Příklad nahrání vlastního modelu jako zip

(musí to být soubor .zip obsahující povinné soubory modelu. Příklad pro XTTSv2: config.json, model.pth, vocab.json a ref.wav)

  • Linux/MacOS

    bash
    ./ebook2audiobook.command --headless --ebook <ebook_file_path> --language <language> --custom_model <custom_model_path>
    
  • Windows

    bash
    ebook2audiobook.cmd --headless --ebook <ebook_file_path> --language <language> --custom_model <custom_model_path>
    

    <i>Poznámka: ref.wav vašeho vlastního modelu je vždy hlas vybraný pro převod</i>

  • <custom_model_path>: Cesta k souboru model_name.zip, který musí obsahovat (podle TTS enginu) všechny povinné soubory

    (viz ./lib/models.py).
    

Pro podrobného průvodce se seznamem všech parametrů k použití

  • Linux/MacOS
    bash
    ./ebook2audiobook.command --help
    
  • Windows
    bash
    ebook2audiobook.cmd --help
    
  • Nebo pro všechny operační systémy python app.py --help

<a id="help-command-output"></a>

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 _<iso3> 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
  --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

POZNÁMKA: v režimu gradio/gui zrušíte probíhající převod jednoduše kliknutím na [X] v komponentě pro nahrání e-knihy. TIP: pokud je potřeba o něco delší pauza, přidejte '[pause:3]' pro 3 s atd.

Docker

  1. Naklonujte repozitář:
bash
   git clone https://github.com/DrewThomasson/ebook2audiobook.git
   cd ebook2audiobook
  1. Sestavte kontejner
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 Compose
            ./ebook2audiobook.command --script_mode build_docker --docker_mode compose
        Podman Compose:
            ./ebook2audiobook.command --script_mode build_docker --docker_mode podman
  1. Spusťte kontejner:
bash
Docker run image:
    Gradio/GUI:
        CPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --rm -it -p 7860:7860 athomasson2/ebook2audiobook:cpu
        CUDA:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --gpus all --rm -it -p 7860:7860 athomasson2/ebook2audiobook:cu[118/122/124/126 etc..]
        ROCM:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --device=/dev/kfd --device=/dev/dri --rm -it -p 7860:7860 athomasson2/ebook2audiobook:rocm[6.0/6.1/6.4 etc..]
        XPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --device=/dev/dri --rm -it -p 7860:7860 athomasson2/ebook2audiobook:xpu
        JETSON:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" --runtime nvidia  --rm -it -p 7860:7860 athomasson2/ebook2audiobook:jetson[51/60/61 etc...]
    Headless mode:
        CPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --rm -it -p 7860:7860 ebook2audiobook:cpu --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        CUDA:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --gpus all --rm -it -p 7860:7860 ebook2audiobook:cu[118/122/124/126 etc..] --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        ROCM:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --device=/dev/kfd --device=/dev/dri --rm -it -p 7860:7860 ebook2audiobook:rocm[6.0/6.1/6.4 etc.] --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        XPU:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --device=/dev/dri --rm -it -p 7860:7860 ebook2audiobook:xpu --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
        JETSON:
          docker run -v "./ebooks:/app/ebooks" -v "./audiobooks:/app/audiobooks" -v "./models:/app/models" -v "./voices:/app/voices" -v "./tmp:/app/tmp" -v "/my/real/ebooks/folder/absolute/path:/app/another_ebook_folder" --runtime nvidia --rm -it -p 7860:7860 ebook2audiobook:jetson[51/60/61 etc.] --headless --ebook "/app/another_ebook_folder/myfile.pdf" [--voice /app/my/voicepath/voice.mp3 etc..]
Docker Compose (i.e. cuda 12.8:
        Run Gradio GUI:
               DEVICE_TAG=cu128 docker compose --profile gpu up --no-log-prefix
        Run Headless mode:
               DEVICE_TAG=cu128 docker compose --profile gpu run --rm ebook2audiobook --headless --ebook "/app/ebooks/myfile.pdf" --voice /app/voices/eng/adult/female/some_voice.wav etc..
Podman Compose (i.e. cuda 12.8:
        Run Gradio GUI:
               DEVICE_TAG=cu128 podman-compose -f podman-compose.yml --profile gpu up
        Run Headless mode:
               DEVICE_TAG=cu128 podman-compose -f podman-compose.yml --profile gpu run --rm ebook2audiobook-gpu --headless --ebook "/app/ebooks/myfile.pdf" --voice /app/voices/eng/adult/female/some_voice.wav etc..
  • POZNÁMKA: MPS není v Dockeru dostupné, proto je nutné použít CPU

Časté problémy s Dockerem

Doladěné (fine-tuned) TTS modely

Dolaďte svůj vlastní model XTTSv2

Odšumění tréninkových dat

Kolekce doladěných TTS modelů

Pro vlastní model XTTSv2 je povinný referenční zvukový klip hlasu:

Vaše vlastní úprava Ebook2Audiobook

Můžete libovolně upravovat libs/conf.py a přidávat či odebírat nastavení, která chcete. Pokud to plánujete, jednoduše si udělejte kopii původního conf.py, abyste při každé aktualizaci ebook2audiobook mohli zazálohovat svůj upravený conf.py a vrátit původní. Stejný postup musíte naplánovat i pro models.py. Pokud chcete ze svého vlastního modelu udělat oficiální doladěný model ebook2audiobook, kontaktujte nás a my jej přidáme do seznamu předvoleb.

Návrat ke starším verzím

Vydání najdete -> zde

bash
git checkout tags/VERSION_NUM # Locally/Compose -> Example: git checkout tags/v25.7.7

Časté problémy:

  • Moje GPU NVIDIA/ROCm/XPU/MPS není detekováno?? -> GPU ISSUES Wiki Page
  • CPU je pomalé (lepší na serverovém SMP CPU), zatímco GPU může mít téměř převod v reálném čase. Discussion about this (Nemá však klonování hlasu zero-shot a hlasy jsou kvality Siri, ale na CPU je mnohem rychlejší).
  • „Mám problémy se závislostmi“ - Použijte prostě Docker, je zcela samostatný a má režim headless, pro více informací přidejte na konec příkazu docker run parametr --help.
  • „Mám problém s oříznutým zvukem!“ - PROSÍM, NAHLASTE TO JAKO ISSUE, nemluvíme každým jazykem a potřebujeme rady uživatelů, abychom doladili logiku dělení vět.😊

***** PLÁN ROZVOJE *****

  • Všechny funkce otevřené veřejným příspěvkům ⭐
  • Jakákoli pomoc od lidí mluvících některým z podporovaných jazyků, aby nám pomohli vylepšit modely ⭐
  • Náhled bloků/kapitol před zahájením převodu
  • Úprava po převedené větě pro chirurgickou změnu textu
  • Integrace SML tagů pro hlas, pauzu, přerušení a další změny
  • Informace o parametrech -h -help v různých jazycích
  • OCR skenování pro PDF / JPG / BMP / PNG / TIFF
  • Složka notebooků Talked about here
  • Zajistit, aby dělení čínského textu nerozdělovalo slova, a zlepšit načasování pauz Talked about here
  • Dockerfile
  • Docker compose
  • Podman compose
  • Notebook Kaggle
  • Notebook Google Colab
  • Vytvořit aplikaci pro iOS
  • Vytvořit aplikaci pro Android
  • Integrace s Audiobookshelf

Další možnosti

  • Možnost překladu e-knihy
  • Možnosti výstupního formátu
  • Dávková složka e-knih
  • Převod s multiprocessingem
  • Dávkový převod složky e-knih
  • Detekce zařízení GPU
  • Odšumění libovolného referenčního zvuku pro nahrané klonování hlasu,
  • Nahrání vlastního modelu (zatím pouze XTTSv2. více na vyžádání)
  • Přidat jazykový model evropské portugalštiny alespoň pro xttsv2, fairseq, vits, piper (pomoc vítána)
  • Přidat jazykový model sindhštiny alespoň pro xttsv2, fairseq, vits, piper (pomoc vítána)

TTS enginy

Překlad souboru Readme

  • Arabic (ara)
  • Chinese (zho)
  • English (eng)
  • Spanish (spa)
  • French (fra)
  • German (deu)
  • Italian (ita)
  • Portuguese (por)
  • Polish (pol)
  • Turkish (tur)
  • Russian (rus)
  • Dutch (nld)
  • Czech (ces)
  • Japanese (jpn)
  • Hindi (hin)
  • Bengali (ben)
  • Hungarian (hun)
  • Korean (kor)
  • Vietnamese (vie)
  • Swedish (swe)
  • Persian (fas)
  • Yoruba (yor)
  • Swahili (swa)
  • Indonesian (ind)
  • Slovak (slk)
  • Croatian (hrv)

🐍 Kompatibilita operačních systémů

  • 🍎 Mac Intel x86
  • 🪟 Windows x86
  • 🐧 Linux x86
  • 🖥️🍏 Apple Silicon Mac
  • 🪟💪 ARM Windows
  • 🐧💪 ARM Linux

Extra nadstandard pro trénování modelů a podobně (všechny podporované modely Coqui-tts a piper-tts v jednom snadném příkazu)

  • Pro informace o tomto: @DrewThomasson na tom v současné době pracuje, repozitář ve vývoji zde
  • Vytvořit snadno použitelné tréninkové GUI pro všechny modely coqui-tts v tréninkových receptech ve formátu ljspeech zde od coqui tts

Informace o normalizaci kódu Python pro přispěvatele

  • žádný prázdný řádek mezi kódem, kromě mezi funkcemi a třídami.
  • jednoduché uvozovky použité pro všechny klíče kromě dict() a json. dict['key'] vždy volán s jednoduchými uvozovkami
  • odsazení 4 mezery, vůbec žádné tabulátory
  • striktní typování pro všechny funkce a deklaraci jejich argumentů a návratových hodnot
  • žádná mezera mezi argumentem a jeho typováním, žádná mezera mezi funkcí, „->“ a návratovou hodnotou

Příklad:

python
import json
from typing import Optional

def get_user(user_id:int, users:list[dict])->Optional[dict]:
    for user in users:
        if user['id'] == user_id:
            return user
    return None

def summarize(user:dict)->str:
    return f"User {user['name']} is {'active' if user['is_active'] else 'inactive'}."

def to_json(user:dict)->str:
    return json.dumps({"id": user['id'], "name": user['name'], "email": user['email']})

users:list = [
    dict(id=1, name="alice", email="[email protected]", role="admin", is_active=True),
    dict(id=2, name="bob", email="[email protected]", role="editor", is_active=False),
    dict(id=3, name="carol", email="[email protected]", role="viewer", is_active=True),
]
config = {
    "max_users": 100,
    "default_role": "viewer",
    "allow_signup": True,
}
roles = ['admin', 'editor', 'viewer']
found = get_user(1, users)
if found:
    print(summarize(found))
    print(found['email'])
    print(to_json(found))
if config['default_role'] in roles:
    print(config['default_role'])

Hledáme darování hardwaru pro beta testy

Přijímáme jakýkoli druh hardwaru pro testování našeho vývoje, jako například:

  • Nvidia supporting cuda >= 11.8
  • XPU intel cards
  • ROCm AMD cards supporting ROCm >=5.7

@DrewThomasson, pokud chcete jakkoli pomoci! 😃

<!-- ## Potřebujete pronajmout GPU pro posílení naší služby? - Anketa je otevřena zde https://github.com/DrewThomasson/ebook2audiobook/discussions/889 -->

Zvláštní poděkování