Back to Ebook2audiobook

πŸ“š ebook2audiobook (E2A)

readme/README_nld.md

26.6.932.8 KB
Original Source

πŸ“š ebook2audiobook (E2A)

CPU/GPU-converter van e-book naar audioboek met hoofdstukken en metadata

met geavanceerde TTS-engines en nog veel meer.

Ondersteunt stemklonen en 1158 talen!

[!IMPORTANT] Deze tool is uitsluitend bedoeld voor gebruik met DRM-vrije, legaal verkregen e-books.

De auteurs zijn niet verantwoordelijk voor enig misbruik van deze software of voor eventuele juridische gevolgen daarvan.

Gebruik deze tool verantwoord en in overeenstemming met alle toepasselijke wetten.

Bedankt voor het steunen van de ontwikkelaars van ebook2audiobook!

Lokaal uitvoeren

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

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

</a>

Op afstand uitvoeren

Grafische interface (GUI)

<details> <summary>Klik om afbeeldingen van de web-GUI te zien</summary> </details>

Demo's

Demo van de nieuwe standaardstem

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

<details> <summary>Meer demo's</summary>

ASMR-stem

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

Regenachtige-dag-stem

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

Scarlett-stem

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

David Attenborough-stem

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

Voorbeeld

</details>

README.md

Inhoudsopgave

Functies

  • πŸ”§ Ondersteunde TTS-engines: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS

  • πŸ“š Meerdere bestandsformaten converteren: .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, .zip

  • πŸ’» Tekstvak om direct een korte tekst naar audio te converteren

  • πŸ” OCR-scanning voor bestanden met tekstpagina's als afbeeldingen

  • πŸ”Š Hoogwaardige tekst-naar-spraak, van bijna realtime tot een bijna echte stem

  • πŸ—£οΈ Optioneel stemklonen met je eigen stembestand

  • 🌐 Ondersteunt 1158 talen (supported languages list)

  • πŸ’» Geschikt voor beperkte middelen β€” draait op 2 GB RAM / 1 GB VRAM (minimum)

  • 🎡 Uitvoerformaten van het audioboek: mono or stereo aac, flac, mp3, m4b, m4a, mp4, mov, ogg, wav, webm

  • 🧠 SML-tags ondersteund β€” nauwkeurige controle over onderbrekingen, pauzes, stemwisselingen en meer (see below)

  • 🧩 Optioneel aangepast model met je eigen getrainde model (XTTSv2, VITS, FAIRSEQ, PIPER, others on request)

  • πŸŽ›οΈ Fijnafgestelde presetmodellen getraind door het E2A-team

    <i>(Neem contact met ons op als je extra fijnafgestelde modellen nodig hebt, of als je die van jou wilt delen op de officiΓ«le presetlijst)</i>

Hardwarevereisten

  • 2 GB RAM min., 8 GB aanbevolen.
  • 1 GB VRAM min., 4 GB aanbevolen.
  • Virtualisatie ingeschakeld bij gebruik op Windows (alleen Docker).
  • CPU, XPU (intel, AMD, ARM)*.
  • CUDA, ROCm, JETSON
  • MPS (Apple Silicon-CPU)

*<i> Moderne TTS-engines zijn erg traag op de CPU, gebruik dus TTS van lagere kwaliteit zoals YourTTS, Tacotron2 enz.</i>

Ondersteunde talen

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)

Ondersteunde e-bookformaten

  • .epub, .pdf, .mobi, .txt, .html, .rtf, .chm, .lit, .pdb, .fb2, .odt, .cbr, .cbz, .prc, .lrf, .pml, .snb, .cbc, .rb, .tcr
  • Beste resultaten: .epub of .mobi voor automatische hoofdstukdetectie

Uitvoer- en verwerkingsformaten

  • .m4b, .m4a, .mp4, .webm, .mov, .mp3, .flac, .wav, .ogg, .aac
  • Het verwerkingsformaat kan worden gewijzigd in lib/conf.py

Beschikbare SML-tags

  • [break] β€” stilte (willekeurig bereik 0.3–0.6 sec.)
  • [pause] β€” stilte (willekeurig bereik 1.0–1.6 sec.)
  • [pause:N] β€” vaste pauze (N sec.)
  • [voice:/path/to/voice/file]...[/voice] β€” wissel van stem ten opzichte van de standaard- of in de GUI/CLI geselecteerde stem

Bekijk onze andere repo die gewijd is aan het automatisch toevoegen van SML in je e-book -> E2A-SML

[!IMPORTANT] **Voordat je een installatie- of bugprobleem plaatst, zoek zorgvuldig in het tabblad met open en gesloten issues

om er zeker van te zijn dat je probleem nog niet bestaat.**

[!NOTE] **Het EPUB-formaat heeft geen enkele standaardstructuur die aangeeft wat een hoofdstuk, alinea, voorwoord enz. is.

Daarom moet je eerst handmatig alle tekst verwijderen die je niet naar audio wilt converteren.**

Instructies

  1. Repo klonen

    bash
    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. ebook2audiobook installeren / uitvoeren:

    • Linux/MacOS

      bash
      ./ebook2audiobook.command
      

      <i>Opmerking voor macOS-gebruikers: homebrew wordt geΓ―nstalleerd om ontbrekende programma's te installeren.</i>

    • Mac-launcher
      Dubbelklik op Mac Ebook2Audiobook Launcher.command

    • Windows

      bash
      ebook2audiobook.cmd
      

      of Dubbelklik op ebook2audiobook.cmd

      <i>Opmerking voor Windows-gebruikers: scoop wordt geΓ―nstalleerd om ontbrekende programma's te installeren zonder beheerdersrechten.</i>

  3. Open de web-app: Klik op de URL in de terminal om toegang te krijgen tot de web-app en e-books te converteren. http://localhost:7860/

  4. Voor een openbare link: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (all OS)

[!IMPORTANT] **Als het script wordt gestopt en opnieuw uitgevoerd, moet je je Gradio-GUI-interface vernieuwen

zodat de webpagina opnieuw verbinding kan maken met de nieuwe verbindings-socket.**

Basisgebruik

  • 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]: Pad naar je e-bookbestand

  • [--voice]: Bestandspad voor stemklonen (optioneel)

  • [--language]: Taalcode in ISO-639-3 (bijv.: ita voor Italiaans, eng voor Engels, deu voor Duits...).

    De standaardtaal is eng en --language is optioneel voor de standaardtaal die is ingesteld in ./lib/lang.py.

    De 2-letterige ISO-639-1-codes worden ook ondersteund.

Voorbeeld van het uploaden van een aangepast model als zip

(moet een .zip-bestand zijn met de verplichte modelbestanden. Voorbeeld voor XTTSv2: config.json, model.pth, vocab.json en 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>Opmerking: de ref.wav van je aangepaste model is altijd de stem die voor de conversie is geselecteerd</i>

  • <custom_model_path>: Pad naar het model_name.zip-bestand, dat (afhankelijk van de TTS-engine) alle verplichte bestanden moet bevatten

    (zie ./lib/models.py).
    

Voor een gedetailleerde gids met een lijst van alle te gebruiken parameters

  • Linux/MacOS
    bash
    ./ebook2audiobook.command --help
    
  • Windows
    bash
    ebook2audiobook.cmd --help
    
  • Of voor alle besturingssystemen 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

OPMERKING: in gradio/gui-modus klik je gewoon op de [X] van de e-book-uploadcomponent om een lopende conversie te annuleren. TIP: als er wat meer pauze nodig is, voeg dan '[pause:3]' toe voor 3 sec. enz.

Docker

  1. De repository klonen:
bash
   git clone https://github.com/DrewThomasson/ebook2audiobook.git
   cd ebook2audiobook
  1. De container bouwen
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. De container uitvoeren:
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..
  • OPMERKING: MPS wordt niet beschikbaar gesteld in Docker, dus moet de CPU worden gebruikt

Veelvoorkomende Docker-problemen

Fijnafgestelde (fine-tuned) TTS-modellen

Stel je eigen XTTSv2-model fijn af

Ruis verwijderen uit trainingsdata

Collectie van fijnafgestelde TTS-modellen

Voor een aangepast XTTSv2-model is een referentie-audiofragment van de stem verplicht:

Je eigen Ebook2Audiobook-aanpassing

Je bent vrij om libs/conf.py aan te passen om de gewenste instellingen toe te voegen of te verwijderen. Als je dit van plan bent, maak dan gewoon een kopie van de originele conf.py, zodat je bij elke ebook2audiobook-update je gewijzigde conf.py kunt back-uppen en de originele kunt terugzetten. Je moet hetzelfde proces plannen voor models.py. Als je van je eigen aangepaste model een officieel fijnafgesteld ebook2audiobook-model wilt maken, neem dan contact met ons op en we voegen het toe aan de presetlijst.

Terugkeren naar oudere versies

Releases zijn te vinden -> hier

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

Veelvoorkomende problemen:

  • Mijn NVIDIA/ROCm/XPU/MPS-GPU wordt niet gedetecteerd?? -> GPU ISSUES Wiki Page
  • De CPU is traag (beter op een server-SMP-CPU), terwijl de GPU een bijna realtime conversie kan bereiken. Discussion about this (Het heeft echter geen zero-shot stemklonen, en de stemmen zijn van Siri-kwaliteit, maar het is veel sneller op de CPU).
  • "Ik heb problemen met afhankelijkheden" - Gebruik gewoon Docker, het is volledig zelfstandig en heeft een headless-modus, voeg de parameter --help toe aan het einde van het docker run-commando voor meer informatie.
  • "Ik heb een probleem met afgekapte audio!" - MAAK HIER ALSJEBLIEFT EEN ISSUE VAN, we spreken niet elke taal en hebben advies van gebruikers nodig om de logica voor het splitsen van zinnen te verfijnen.😊

***** ROADMAP *****

  • Alle functies open voor publieke bijdragen ⭐
  • Alle hulp van mensen die een van de ondersteunde talen spreken om ons te helpen de modellen te verbeteren ⭐
  • Blokken/hoofdstukken bekijken voordat de conversie start
  • Bewerken per geconverteerde zin voor chirurgische tekstwijziging
  • SML-tag-integratie voor stem, pauze, onderbreking en meer wijzigingen
  • Info over de parameters -h -help in verschillende talen
  • OCR-scanning voor PDF / JPG / BMP / PNG / TIFF
  • Notebooks-map Talked about here
  • Ervoor zorgen dat het splitsen van Chinese tekst geen woorden splitst en de timing van pauzes verbeteren Talked about here
  • Dockerfile
  • Docker compose
  • Podman compose
  • Kaggle-notebook
  • Google Colab-notebook
  • Een iOS-app maken
  • Een Android-app maken
  • Audiobookshelf-integratie

Extra opties

  • Optie voor e-bookvertaling
  • Keuzes voor uitvoerformaat
  • Batch e-bookmap
  • Conversie met multiprocessing
  • Batchconversie van een e-bookmap
  • GPU-apparaatdetectie
  • Ruis verwijderen uit elke referentie-audio voor het uploaden van stemklonen,
  • Upload van aangepast model (voorlopig alleen XTTSv2. meer op aanvraag)
  • Een Europees-Portugees taalmodel toevoegen voor ten minste xttsv2, fairseq, vits, piper (hulp welkom)
  • Een Sindhi-taalmodel toevoegen voor ten minste xttsv2, fairseq, vits, piper (hulp welkom)

TTS-engines

Readme-vertaling

  • 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)

🐍 Compatibiliteit met besturingssystemen

  • 🍎 Mac Intel x86
  • πŸͺŸ Windows x86
  • 🐧 Linux x86
  • πŸ–₯️🍏 Apple Silicon Mac
  • πŸͺŸπŸ’ͺ ARM Windows
  • 🐧πŸ’ͺ ARM Linux

Extra overkill voor het trainen van modellen en dergelijke (alle ondersteunde Coqui-tts-modellen en piper-tts in één eenvoudige opdracht)

  • Voor informatie hierover: @DrewThomasson werkt momenteel aan de ontwikkeling hiervan, work-in-progress-repo hier
  • Een gebruiksvriendelijke trainings-GUI maken voor alle coqui-tts-modellen in de ljspeech-formaat trainingsrecepten hier van coqui tts

Informatie over Python-codenormalisatie voor bijdragers

  • geen lege regel tussen de code, behalve tussen functies en klassen.
  • enkele aanhalingstekens gebruikt voor alle sleutels behalve voor dict() en json. dict['key'] altijd aangeroepen met enkele aanhalingstekens
  • 4 spaties inspringing, helemaal geen tabs
  • strikte typering voor alle functies en de declaratie van hun argumenten en retourwaarden
  • geen spatie tussen het argument en de typering ervan, geen spatie tussen de functie, de "->" en de retourwaarde

Voorbeeld:

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'])

Hardwaredonatie voor bètatests gezocht

We accepteren elk soort hardware om onze ontwikkeling te testen, zoals:

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

@DrewThomasson als je op welke manier dan ook wilt helpen! πŸ˜ƒ

<!-- ## Moet je een GPU huren om onze service te versnellen? - Er is hier een peiling geopend https://github.com/DrewThomasson/ebook2audiobook/discussions/889 -->

Speciale dank