Back to Ebook2audiobook

📚 ebook2audiobook (E2A)

readme/README_hun.md

26.6.1733.8 KB
Original Source

📚 ebook2audiobook (E2A)

CPU/GPU ĂĄtalakĂ­tĂł e-könyvbƑl hangoskönyvvĂ© fejezetekkel Ă©s metaadatokkal

fejlett TTS-motorok hasznålatåval és még sok måssal.

Tåmogatja a hangklónozåst és 1158 nyelvet!

[!IMPORTANT] Ez az eszköz kizårólag DRM-mentes, legålisan beszerzett e-könyvekhez hasznålható.

A szerzƑk nem felelƑsek a szoftver bĂĄrminemƱ visszaĂ©lĂ©séért, sem az ebbƑl eredƑ jogi következmĂ©nyekĂ©rt.

HasznĂĄld ezt az eszközt felelƑssĂ©gteljesen, az összes vonatkozĂł törvĂ©nnyel összhangban.

KöszönjĂŒk, hogy tĂĄmogatod az ebook2audiobook fejlesztƑit!

FuttatĂĄs helyben

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

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

</a>

FuttatĂĄs tĂĄvolrĂłl

Grafikus felĂŒlet (GUI)

<details> <summary>Kattints a webes GUI képeinek megtekintéséhez</summary> </details>

DemĂłk

Az Ășj alapĂ©rtelmezett hang demĂłja

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

<details> <summary>TovĂĄbbi demĂłk</summary>

ASMR hang

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

EsƑs napi hang

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

Scarlett hang

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

David Attenborough hang

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

Példa

</details>

README.md

Tartalomjegyzék

FunkciĂłk

  • 🔧 TĂĄmogatott TTS-motorok: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS

  • 📚 Több fĂĄjlformĂĄtum ĂĄtalakĂ­tĂĄsa: .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, .zip

  • đŸ’» SzövegmezƑ rövid szöveg közvetlen hanggĂĄ alakĂ­tĂĄsĂĄhoz

  • 🔍 OCR-beolvasĂĄs kĂ©pkĂ©nt megjelenƑ szöveges oldalakat tartalmazĂł fĂĄjlokhoz

  • 🔊 KivĂĄlĂł minƑsĂ©gƱ szövegfelolvasĂĄs, a közel valĂłs idƑtƑl a szinte valĂłs hangig

  • đŸ—Łïž OpcionĂĄlis hangklĂłnozĂĄs a sajĂĄt hangfĂĄjlod hasznĂĄlatĂĄval

  • 🌐 1158 nyelvet tĂĄmogat (supported languages list)

  • đŸ’» ErƑforrĂĄs-barĂĄt — fut 2 GB RAM / 1 GB VRAM (minimum) mellett

  • đŸŽ” Hangoskönyv kimeneti formĂĄtumok: mono or stereo aac, flac, mp3, m4b, m4a, mp4, mov, ogg, wav, webm

  • 🧠 SML cĂ­mkĂ©k tĂĄmogatĂĄsa — szĂŒnetek, megĂĄllĂĄsok, hangvĂĄltĂĄs Ă©s egyebek finom vezĂ©rlĂ©se (see below)

  • đŸ§© OpcionĂĄlis egyĂ©ni modell a sajĂĄt betanĂ­tott modelled hasznĂĄlatĂĄval (XTTSv2, VITS, FAIRSEQ, PIPER, others on request)

  • đŸŽ›ïž Finomhangolt elƑbeĂĄllĂ­tott modellek, amelyeket az E2A csapata tanĂ­tott be

    <i>(LĂ©pj kapcsolatba velĂŒnk, ha tovĂĄbbi finomhangolt modellekre van szĂŒksĂ©ged, vagy ha meg szeretnĂ©d osztani a sajĂĄtjaidat a hivatalos elƑbeĂĄllĂ­tĂĄsok listĂĄjĂĄn)</i>

Hardverkövetelmények

  • 2 GB RAM min., 8 GB ajĂĄnlott.
  • 1 GB VRAM min., 4 GB ajĂĄnlott.
  • EngedĂ©lyezett virtualizĂĄciĂł, ha Windowson fut (csak Docker).
  • CPU, XPU (intel, AMD, ARM)*.
  • CUDA, ROCm, JETSON
  • MPS (Apple Silicon CPU)

*<i> A modern TTS-motorok nagyon lassĂșak CPU-n, ezĂ©rt hasznĂĄlj alacsonyabb minƑsĂ©gƱ TTS-t, mint a YourTTS, Tacotron2 stb.</i>

TĂĄmogatott nyelvek

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)

Tåmogatott e-könyv formåtumok

  • .epub, .pdf, .mobi, .txt, .html, .rtf, .chm, .lit, .pdb, .fb2, .odt, .cbr, .cbz, .prc, .lrf, .pml, .snb, .cbc, .rb, .tcr
  • Legjobb eredmĂ©nyek: .epub vagy .mobi az automatikus fejezetfelismerĂ©shez

Kimeneti és feldolgozåsi formåtumok

  • .m4b, .m4a, .mp4, .webm, .mov, .mp3, .flac, .wav, .ogg, .aac
  • A feldolgozĂĄsi formĂĄtum a lib/conf.py fĂĄjlban mĂłdosĂ­thatĂł

ElĂ©rhetƑ SML cĂ­mkĂ©k

  • [break] — csend (vĂ©letlenszerƱ tartomĂĄny 0.3–0.6 sec.)
  • [pause] — csend (vĂ©letlenszerƱ tartomĂĄny 1.0–1.6 sec.)
  • [pause:N] — fix szĂŒnet (N sec.)
  • [voice:/path/to/voice/file]...[/voice] — hangvĂĄltĂĄs az alapĂ©rtelmezett vagy a GUI/CLI-ben kivĂĄlasztott hangrĂłl

Nézd meg måsik repónkat, amely az SML automatikus hozzåadåsånak szentelt az e-könyvedhez -> E2A-SML

[!IMPORTANT] **MielƑtt telepĂ­tĂ©si vagy hibajegyet nyitnĂĄl, gondosan keress rĂĄ a nyitott Ă©s lezĂĄrt jegyek fĂŒlön

hogy biztos legyél benne, hogy a problémåd még nem létezik.**

[!NOTE] **Az EPUB formĂĄtum nem rendelkezik semmilyen szabvĂĄnyos struktĂșrĂĄval arra nĂ©zve, hogy mi a fejezet, bekezdĂ©s, elƑszĂł stb.

EzĂ©rt elƑször manuĂĄlisan el kell tĂĄvolĂ­tanod minden olyan szöveget, amelyet nem szeretnĂ©l hanggĂĄ alakĂ­tani.**

Instructions

  1. Clone repo

    bash
    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. TelepĂ­tsd / Futtasd az ebook2audiobookot:

    • Linux/MacOS

      bash
      ./ebook2audiobook.command
      

      <i>Note for MacOS users: homebrew is installed to install missing programs.</i>

    • Mac indĂ­tĂł
      Kattints duplĂĄn a Mac Ebook2Audiobook Launcher.command fĂĄjlra

    • Windows

      bash
      ebook2audiobook.cmd
      

      or Double click ebook2audiobook.cmd

      <i>MegjegyzĂ©s Windows-felhasznĂĄlĂłknak: a scoop telepĂ­tĂ©sre kerĂŒl a hiĂĄnyzĂł programok rendszergazdai jogosultsĂĄgok nĂ©lkĂŒli telepĂ­tĂ©sĂ©hez.</i>

  3. Nyisd meg a webalkalmazåst: Kattints a terminålban megadott URL-re a webalkalmazås eléréséhez és az e-könyvek åtalakítåsåhoz. http://localhost:7860/

  4. NyilvĂĄnos linkhez: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (all OS)

[!IMPORTANT] **Ha a szkriptet leĂĄllĂ­tjĂĄk Ă©s Ășjra futtatjĂĄk, frissĂ­tened kell a Gradio GUI felĂŒletedet

hogy a weboldal Ășjra tudjon csatlakozni az Ășj kapcsolati sockethez.**

Basic Usage

  • 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]: Az e-könyv fĂĄjlod elĂ©rĂ©si Ăștja

  • [--voice]: A hangklĂłnozĂł fĂĄjl elĂ©rĂ©si Ăștja (opcionĂĄlis)

  • [--language]: NyelvkĂłd ISO-639-3 formĂĄtumban (pl.: ita olaszhoz, eng angolhoz, deu nĂ©methez...).

    Az alapértelmezett nyelv az eng, és a --language opcionålis a ./lib/lang.py fåjlban beållított alapértelmezett nyelvhez.

    A kétbetƱs ISO-639-1 kódok is tåmogatottak.

Example of Custom Model Zip Upload

(must be a .zip file containing the mandatory model files. Example for XTTSv2: config.json, model.pth, vocab.json and 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>Note: the ref.wav of your custom model is always the voice selected for the conversion</i>

  • <custom_model_path>: A model_name.zip fĂĄjl elĂ©rĂ©si Ăștja, amelynek (a TTS-motortĂłl fĂŒggƑen) tartalmaznia kell az összes kötelezƑ fĂĄjlt

    (lĂĄsd ./lib/models.py).
    

For Detailed Guide with list of all Parameters to use

  • Linux/MacOS
    bash
    ./ebook2audiobook.command --help
    
  • Windows
    bash
    ebook2audiobook.cmd --help
    
  • Or for all OS 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

MEGJEGYZÉS: gradio/gui mĂłdban a folyamatban lĂ©vƑ ĂĄtalakĂ­tĂĄs megszakĂ­tĂĄsĂĄhoz egyszerƱen kattints az e-könyv feltöltĂ©si komponens [X] gombjĂĄra. TIPP: ha kicsit több szĂŒnet szĂŒksĂ©ges, adj hozzĂĄ '[pause:3]'-at 3 mp-hez stb.

Docker

  1. Clone the Repository:
bash
   git clone https://github.com/DrewThomasson/ebook2audiobook.git
   cd ebook2audiobook
  1. Build the container
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. Run the Container:
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..
  • NOTE: MPS is not exposed in docker so CPU must be used

Gyakori Docker-problémåk

Finomhangolt (fine-tuned) TTS modellek

Finomhangold a sajĂĄt XTTSv2 modelledet

Tanítóadatok zajszƱrése

Finomhangolt TTS modellek gyƱjteménye

EgyĂ©ni XTTSv2 modellhez kötelezƑ egy referencia hangklip a hangrĂłl:

A sajĂĄt Ebook2Audiobook testreszabĂĄsod

Szabadon mĂłdosĂ­thatod a libs/conf.py fĂĄjlt a kĂ­vĂĄnt beĂĄllĂ­tĂĄsok hozzĂĄadĂĄsĂĄhoz vagy eltĂĄvolĂ­tĂĄsĂĄhoz. Ha ezt tervezed, egyszerƱen kĂ©szĂ­ts egy mĂĄsolatot az eredeti conf.py fĂĄjlrĂłl, hogy minden ebook2audiobook frissĂ­tĂ©snĂ©l elmenthesd a mĂłdosĂ­tott conf.py fĂĄjlodat, Ă©s visszatehesd az eredetit. Ugyanezt a folyamatot kell megtervezned a models.py esetĂ©ben is. Ha szeretnĂ©d a sajĂĄt egyĂ©ni modelledet hivatalos finomhangolt ebook2audiobook modellĂ© tenni, lĂ©pj kapcsolatba velĂŒnk, Ă©s hozzĂĄadjuk az elƑbeĂĄllĂ­tĂĄsok listĂĄjĂĄhoz.

Reverting to older Versions

Releases can be found -> here

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

Gyakori problémåk:

  • Az NVIDIA/ROCm/XPU/MPS GPU-mat nem Ă©rzĂ©keli?? -> GPU ISSUES Wiki Page
  • A CPU lassĂș (jobb szerver SMP CPU-n), mĂ­g a GPU szinte valĂłs idejƱ ĂĄtalakĂ­tĂĄst tud nyĂșjtani. Discussion about this (Nincs azonban zero-shot hangklĂłnozĂĄsa, Ă©s a hangok Siri minƑsĂ©gƱek, de CPU-n sokkal gyorsabb).
  • „FĂŒggƑsĂ©gi problĂ©mĂĄim vannak” - EgyszerƱen hasznĂĄld a Dockert, teljesen önĂĄllĂł, Ă©s van headless mĂłdja, adj hozzĂĄ --help paramĂ©tert a docker run parancs vĂ©gĂ©hez tovĂĄbbi informĂĄciĂłkĂ©rt.
  • „LevĂĄgott hang problĂ©mĂĄm van!” - KÉRJÜK, NYISS ERRƐL EGY ISSUE-T, nem beszĂ©lĂŒnk minden nyelvet, Ă©s szĂŒksĂ©gĂŒnk van a felhasznĂĄlĂłk tanĂĄcsaira a mondatfelosztĂĄsi logika finomhangolĂĄsĂĄhoz.😊

***** ÜTEMTERV *****

  • Minden funkciĂł nyitva a nyilvĂĄnos hozzĂĄjĂĄrulĂĄsok elƑtt ⭐
  • BĂĄrmilyen segĂ­tsĂ©g a tĂĄmogatott nyelvek valamelyikĂ©t beszĂ©lƑ emberektƑl, hogy segĂ­tsenek javĂ­tani a modelleket ⭐
  • Blokkok/fejezetek elƑnĂ©zete az ĂĄtalakĂ­tĂĄs megkezdĂ©se elƑtt
  • SzerkesztĂ©s ĂĄtalakĂ­tott mondatonkĂ©nt a sebĂ©szi pontossĂĄgĂș szövegmĂłdosĂ­tĂĄshoz
  • SML cĂ­mkĂ©k integrĂĄciĂłja hanghoz, szĂŒnethez, megszakĂ­tĂĄshoz Ă©s tovĂĄbbi mĂłdosĂ­tĂĄsokhoz
  • A -h -help paramĂ©terek informĂĄciĂłi kĂŒlönbözƑ nyelveken
  • OCR-beolvasĂĄs PDF / JPG / BMP / PNG / TIFF formĂĄtumokhoz
  • Notebookok mappa Talked about here
  • A kĂ­nai szövegfelosztĂĄs Ășgy alakĂ­tĂĄsa, hogy ne vĂĄgjon szĂ©t szavakat, Ă©s a szĂŒnetek idƑzĂ­tĂ©sĂ©nek javĂ­tĂĄsa Talked about here
  • Dockerfile
  • Docker compose
  • Podman compose
  • Kaggle notebook
  • Google Colab notebook
  • iOS alkalmazĂĄs kĂ©szĂ­tĂ©se
  • Android alkalmazĂĄs kĂ©szĂ­tĂ©se
  • Audiobookshelf integrĂĄciĂł

TovĂĄbbi opciĂłk

  • E-könyv fordĂ­tĂĄsi opciĂł
  • Kimeneti formĂĄtum vĂĄlasztĂĄsa
  • Kötegelt e-könyv mappa
  • ÁtalakĂ­tĂĄs többszĂĄlĂș feldolgozĂĄssal
  • E-könyv mappa kötegelt ĂĄtalakĂ­tĂĄsa
  • GPU-eszköz Ă©szlelĂ©se
  • BĂĄrmilyen referencia hang zajszƱrĂ©se a feltöltött hangklĂłnozĂĄshoz,
  • EgyĂ©ni modell feltöltĂ©se (egyelƑre csak XTTSv2. több kĂ©rĂ©sre)
  • EurĂłpai portugĂĄl nyelvi modell hozzĂĄadĂĄsa legalĂĄbb xttsv2, fairseq, vits, piper szĂĄmĂĄra (segĂ­tsĂ©g szĂ­vesen lĂĄtott)
  • Szindhi nyelvi modell hozzĂĄadĂĄsa legalĂĄbb xttsv2, fairseq, vits, piper szĂĄmĂĄra (segĂ­tsĂ©g szĂ­vesen lĂĄtott)

TTS motorok

A Readme fordĂ­tĂĄsa

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

🐍 Operációsrendszer-kompatibilitás

  • 🍎 Mac Intel x86
  • đŸȘŸ Windows x86
  • 🐧 Linux x86
  • đŸ–„ïžđŸ Apple Silicon Mac
  • đŸȘŸđŸ’Ș ARM Windows
  • 🐧đŸ’Ș ARM Linux

Extra tĂșlzĂĄs modellek tanĂ­tĂĄsĂĄhoz Ă©s hasonlĂłkhoz (az összes tĂĄmogatott Coqui-tts modell Ă©s a piper-tts egyetlen egyszerƱ paranccsal)

  • Az errƑl szĂłlĂł informĂĄciĂłkĂ©rt: @DrewThomasson jelenleg ennek a fejlesztĂ©sĂ©n dolgozik, fejlesztĂ©s alatt ĂĄllĂł repĂł itt
  • Könnyen hasznĂĄlhatĂł tanĂ­tĂł GUI kĂ©szĂ­tĂ©se az összes coqui-tts modellhez ljspeech formĂĄtumĂș tanĂ­tĂł receptekben itt a coqui tts-tƑl

Python kĂłdnormalizĂĄlĂĄsi informĂĄciĂłk közremƱködƑknek

  • nincs ĂŒres sor a kĂłd között, kivĂ©ve a fĂŒggvĂ©nyek Ă©s osztĂĄlyok között.
  • egyszeres idĂ©zƑjel minden kulcshoz, kivĂ©ve a dict() Ă©s json esetĂ©ben. a dict['key'] mindig egyszeres idĂ©zƑjellel hĂ­vandĂł
  • 4 szĂłköznyi behĂșzĂĄs, egyĂĄltalĂĄn nincs tabulĂĄtor
  • szigorĂș tĂ­pusozĂĄs minden fĂŒggvĂ©nyhez, valamint argumentumaik Ă©s visszatĂ©rĂ©si Ă©rtĂ©keik deklarĂĄciĂłjĂĄhoz
  • nincs szĂłköz az argumentum Ă©s a tĂ­pusozĂĄsa között, nincs szĂłköz a fĂŒggvĂ©ny, a „->” Ă©s a visszatĂ©rĂ©si Ă©rtĂ©k között

Példa:

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

HardveradomĂĄnyt keresĂŒnk bĂ©ta tesztekhez

BĂĄrmilyen tĂ­pusĂș hardvert elfogadunk a fejlesztĂ©sĂŒnk tesztelĂ©sĂ©hez, pĂ©ldĂĄul:

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

@DrewThomasson ha bĂĄrmilyen mĂłdon segĂ­teni szeretnĂ©l! 😃

<!-- ## SzĂŒksĂ©ged van GPU bĂ©rlĂ©sĂ©re a szolgĂĄltatĂĄsunk felgyorsĂ­tĂĄsĂĄhoz? - Egy szavazĂĄs nyitva van itt https://github.com/DrewThomasson/ebook2audiobook/discussions/889 -->

KĂŒlön köszönet