Back to Ebook2audiobook

📚 ebook2audiobook (E2A)

readme/README_swe.md

26.6.932.4 KB
Original Source

📚 ebook2audiobook (E2A)

CPU/GPU-omvandlare frÄn e-bok till ljudbok med kapitel och metadata

med avancerade TTS-motorer och mycket mer.

Stöder röstkloning och 1158 sprÄk!

[!IMPORTANT] Detta verktyg Àr endast avsett att anvÀndas med DRM-fria, lagligt förvÀrvade e-böcker.

Författarna ansvarar inte för nÄgot missbruk av denna programvara eller för eventuella rÀttsliga följder.

AnvÀnd detta verktyg ansvarsfullt och i enlighet med alla tillÀmpliga lagar.

Tack för att du stöder utvecklarna av ebook2audiobook!

Kör lokalt

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

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

</a>

Kör pÄ distans

Grafiskt grÀnssnitt (GUI)

<details> <summary>Klicka för att se bilder pÄ webb-GUI:t</summary> </details>

Demos

Demo av den nya standardrösten

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

<details> <summary>Fler demos</summary>

ASMR-röst

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

Regnig dag-röst

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

Scarlett-röst

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

David Attenborough-röst

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

Exempel

</details>

README.md

InnehÄllsförteckning

Funktioner

  • 🔧 TTS-motorer som stöds: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS

  • 📚 Konvertera flera filformat: .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, .zip

  • đŸ’» TextomrĂ„de för att direkt konvertera en kort text till ljud

  • 🔍 OCR-skanning för filer med textsidor som bilder

  • 🔊 Högkvalitativ text-till-tal, frĂ„n nĂ€ra realtid till en nĂ€stan verklig röst

  • đŸ—Łïž Valfri röstkloning med din egen röstfil

  • 🌐 Stöder 1158 sprĂ„k (supported languages list)

  • đŸ’» ResurssnĂ„l — körs pĂ„ 2 GB RAM / 1 GB VRAM (minimum)

  • đŸŽ” Utdataformat för ljudbok: mono or stereo aac, flac, mp3, m4b, m4a, mp4, mov, ogg, wav, webm

  • 🧠 SML-taggar stöds — finkornig kontroll av avbrott, pauser, röstbyte och mer (see below)

  • đŸ§© Valfri anpassad modell med din egen trĂ€nade modell (XTTSv2, VITS, FAIRSEQ, PIPER, others on request)

  • đŸŽ›ïž Finjusterade förinstĂ€llda modeller trĂ€nade av E2A-teamet

    <i>(Kontakta oss om du behöver ytterligare finjusterade modeller, eller om du vill dela dina egna i den officiella förinstÀllningslistan)</i>

HÄrdvarukrav

  • 2 GB RAM min., 8 GB rekommenderas.
  • 1 GB VRAM min., 4 GB rekommenderas.
  • Virtualisering aktiverad vid körning pĂ„ Windows (endast Docker).
  • CPU, XPU (intel, AMD, ARM)*.
  • CUDA, ROCm, JETSON
  • MPS (Apple Silicon-CPU)

*<i> Moderna TTS-motorer Àr mycket lÄngsamma pÄ CPU, sÄ anvÀnd TTS av lÀgre kvalitet som YourTTS, Tacotron2 osv.</i>

SprÄk som stöds

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)

E-boksformat som stöds

  • .epub, .pdf, .mobi, .txt, .html, .rtf, .chm, .lit, .pdb, .fb2, .odt, .cbr, .cbz, .prc, .lrf, .pml, .snb, .cbc, .rb, .tcr
  • BĂ€sta resultat: .epub eller .mobi för automatisk kapiteldetektering

Utdata- och bearbetningsformat

  • .m4b, .m4a, .mp4, .webm, .mov, .mp3, .flac, .wav, .ogg, .aac
  • Bearbetningsformatet kan Ă€ndras i lib/conf.py

TillgÀngliga SML-taggar

  • [break] — tystnad (slumpmĂ€ssigt intervall 0.3–0.6 sec.)
  • [pause] — tystnad (slumpmĂ€ssigt intervall 1.0–1.6 sec.)
  • [pause:N] — fast paus (N sec.)
  • [voice:/path/to/voice/file]...[/voice] — byt röst frĂ„n standard- eller vald röst frĂ„n GUI/CLI

Kolla in vÄrt andra repo som Àr dedikerat till att lÀgga till SML automatiskt i din e-bok -> E2A-SML

[!IMPORTANT] **Innan du rapporterar ett installations- eller buggproblem, sök noggrant i fliken med öppna och stÀngda Àrenden

för att vara sÀker pÄ att ditt problem inte redan finns.**

[!NOTE] **EPUB-formatet saknar all standardstruktur för vad som Àr ett kapitel, ett stycke, ett förord osv.

Du bör dÀrför först manuellt ta bort all text som du inte vill omvandla till ljud.**

Instruktioner

  1. Klona repot

    bash
    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. Installera / Kör ebook2audiobook:

    • Linux/MacOS

      bash
      ./ebook2audiobook.command
      

      <i>Notera för macOS-anvÀndare: homebrew installeras för att installera saknade program.</i>

    • Mac-startprogram
      Dubbelklicka pÄ Mac Ebook2Audiobook Launcher.command

    • Windows

      bash
      ebook2audiobook.cmd
      

      eller Dubbelklicka pÄ ebook2audiobook.cmd

      <i>Notera för Windows-anvÀndare: scoop installeras för att installera saknade program utan administratörsbehörighet.</i>

  3. Öppna webbappen: Klicka pĂ„ URL:en som anges i terminalen för att komma Ă„t webbappen och konvertera e-böcker. http://localhost:7860/

  4. För en offentlig lÀnk: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (all OS)

[!IMPORTANT] **Om skriptet stoppas och körs igen mÄste du uppdatera ditt Gradio-GUI-grÀnssnitt

sÄ att webbsidan kan Äteransluta till den nya anslutningssocketen.**

GrundlÀggande anvÀndning

  • 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]: SökvĂ€g till din e-boksfil

  • [--voice]: SökvĂ€g till fil för röstkloning (valfritt)

  • [--language]: SprĂ„kkod i ISO-639-3 (dvs.: ita för italienska, eng för engelska, deu för tyska...).

    StandardsprÄket Àr eng och --language Àr valfritt för standardsprÄket som anges i ./lib/lang.py.

    De tvÄbokstaviga ISO-639-1-koderna stöds ocksÄ.

Exempel pÄ uppladdning av en anpassad modell som zip

(mÄste vara en .zip-fil som innehÄller de obligatoriska modellfilerna. Exempel för XTTSv2: config.json, model.pth, vocab.json och 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>Notera: ref.wav för din anpassade modell Àr alltid den röst som valts för konverteringen</i>

  • <custom_model_path>: SökvĂ€g till filen model_name.zip, som mĂ„ste innehĂ„lla (beroende pĂ„ TTS-motorn) alla obligatoriska filer

    (se ./lib/models.py).
    

För en detaljerad guide med en lista över alla parametrar att anvÀnda

  • Linux/MacOS
    bash
    ./ebook2audiobook.command --help
    
  • Windows
    bash
    ebook2audiobook.cmd --help
    
  • Eller för alla operativsystem 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

NOTERA: i gradio/gui-lÀget avbryter du en pÄgÄende konvertering genom att helt enkelt klicka pÄ [X] i komponenten för e-boksuppladdning. TIPS: om det behövs lite mer paus, lÀgg till '[pause:3]' för 3 sek. osv.

Docker

  1. Klona repositoryt:
bash
   git clone https://github.com/DrewThomasson/ebook2audiobook.git
   cd ebook2audiobook
  1. Bygg containern
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. Kör containern:
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..
  • NOTERA: MPS exponeras inte i Docker, sĂ„ CPU mĂ„ste anvĂ€ndas

Vanliga Docker-problem

Finjusterade (fine-tuned) TTS-modeller

Finjustera din egen XTTSv2-modell

Brusreducera trÀningsdata

Samling av finjusterade TTS-modeller

För en anpassad XTTSv2-modell Àr ett referensljudklipp av rösten obligatoriskt:

Din egen anpassning av Ebook2Audiobook

Du Àr fri att Àndra libs/conf.py för att lÀgga till eller ta bort de instÀllningar du vill. Om du planerar att göra det, gör helt enkelt en kopia av den ursprungliga conf.py sÄ att du vid varje ebook2audiobook-uppdatering kan sÀkerhetskopiera din Àndrade conf.py och lÀgga tillbaka originalet. Du mÄste planera samma process för models.py. Om du vill göra din egen anpassade modell till en officiell finjusterad ebook2audiobook-modell, kontakta oss sÄ lÀgger vi till den i förinstÀllningslistan.

ÅtergĂ„ till Ă€ldre versioner

UtgÄvor finns -> hÀr

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

Vanliga problem:

  • Min NVIDIA/ROCm/XPU/MPS-GPU upptĂ€cks inte?? -> GPU ISSUES Wiki Page
  • CPU:n Ă€r lĂ„ngsam (bĂ€ttre pĂ„ en server-SMP-CPU) medan GPU:n kan ha nĂ€stan realtidskonvertering. Discussion about this (Den har dock inte zero-shot-röstkloning, och rösterna Ă€r av Siri-kvalitet, men den Ă€r mycket snabbare pĂ„ CPU).
  • "Jag har problem med beroenden" - AnvĂ€nd bara Docker, den Ă€r helt fristĂ„ende och har ett headless-lĂ€ge, lĂ€gg till parametern --help i slutet av docker run-kommandot för mer information.
  • "Jag har ett problem med avklippt ljud!" - VÄNLIGEN SKAPA ETT ÄRENDE OM DETTA, vi talar inte alla sprĂ„k och behöver rĂ„d frĂ„n anvĂ€ndare för att finjustera logiken för meningsdelning.😊

***** FÄRDPLAN *****

  • Alla funktioner öppna för offentliga bidrag ⭐
  • All hjĂ€lp frĂ„n personer som talar nĂ„got av de sprĂ„k som stöds för att hjĂ€lpa oss förbĂ€ttra modellerna ⭐
  • Förhandsgranska block/kapitel innan konverteringen startar
  • Redigering per konverterad mening för kirurgisk textĂ€ndring
  • Integrering av SML-taggar för röst, paus, avbrott och fler Ă€ndringar
  • Info om parametrarna -h -help pĂ„ olika sprĂ„k
  • OCR-skanning för PDF / JPG / BMP / PNG / TIFF
  • Notebooks-mapp Talked about here
  • FĂ„ kinesisk textdelning att inte dela ord och förbĂ€ttra pausernas timing Talked about here
  • Dockerfile
  • Docker compose
  • Podman compose
  • Kaggle-notebook
  • Google Colab-notebook
  • Skapa en iOS-app
  • Skapa en Android-app
  • Audiobookshelf-integrering

Extra alternativ

  • Alternativ för e-boksöversĂ€ttning
  • Val av utdataformat
  • Batch-e-boksmapp
  • Konvertering med multiprocessing
  • Batchkonvertering av en e-boksmapp
  • Detektering av GPU-enhet
  • Brusreducera valfritt referensljud för uppladdad röstkloning,
  • Uppladdning av anpassad modell (endast XTTSv2 för nĂ€rvarande. mer pĂ„ begĂ€ran)
  • LĂ€gg till en europeisk portugisisk sprĂ„kmodell för Ă„tminstone xttsv2, fairseq, vits, piper (hjĂ€lp vĂ€lkomnas)
  • LĂ€gg till en sindhi-sprĂ„kmodell för Ă„tminstone xttsv2, fairseq, vits, piper (hjĂ€lp vĂ€lkomnas)

TTS-motorer

Readme-översÀttning

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

🐍 Kompatibilitet med operativsystem

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

Extra overkill för att trÀna modeller och liknande (alla Coqui-tts-modeller som stöds och piper-tts i ett enkelt kommando)

  • För information om detta: @DrewThomasson arbetar för nĂ€rvarande med utvecklingen av detta, pĂ„gĂ„ende repo hĂ€r
  • Skapa ett lĂ€ttanvĂ€nt trĂ€nings-GUI för alla coqui-tts-modeller i trĂ€ningsrecepten i ljspeech-format hĂ€r frĂ„n coqui tts

Information om normalisering av Python-kod för bidragsgivare

  • ingen tom rad mellan koden, utom mellan funktioner och klasser.
  • enkla citattecken anvĂ€nds för alla nycklar utom för dict() och json. dict['key'] anropas alltid med enkla citattecken
  • 4 mellanslags indrag, inga tabbar alls
  • strikt typning för alla funktioner och deklarationen av deras argument och returvĂ€rden
  • inget mellanslag mellan argumentet och dess typning, inget mellanslag mellan funktionen, "->" och returvĂ€rdet

Exempel:

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

HÄrdvarudonation för betatester sökes

Vi tar emot alla typer av hÄrdvara för att testa vÄr utveckling, till exempel:

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

@DrewThomasson om du vill hjĂ€lpa till pĂ„ nĂ„got sĂ€tt! 😃

<!-- ## Behöver du hyra en GPU för att förstÀrka vÄr tjÀnst? - En omröstning Àr öppen hÀr https://github.com/DrewThomasson/ebook2audiobook/discussions/889 -->

SĂ€rskilt tack