Back to Ebook2audiobook

πŸ“š ebook2audiobook (E2A)

readme/README_rus.md

26.7.940.8 KB
Original Source

πŸ“š ebook2audiobook (E2A)

CPU/GPU ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ ΠΈΠ· элСктронной ΠΊΠ½ΠΈΠ³ΠΈ Π² Π°ΡƒΠ΄ΠΈΠΎΠΊΠ½ΠΈΠ³Ρƒ с Π³Π»Π°Π²Π°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

с использованиСм ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… Π΄Π²ΠΈΠΆΠΊΠΎΠ² TTS ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ голоса ΠΈ 1158 языков!

Π’Π°ΠΆΠ½ΠΎ Π­Ρ‚ΠΎΡ‚ инструмСнт ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с элСктронными ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ Π±Π΅Π· DRM, ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Π½Π½Ρ‹ΠΌΠΈ Π·Π°ΠΊΠΎΠ½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ.

Авторы Π½Π΅ нСсут отвСтствСнности Π·Π° любоС Π½Π΅ΠΏΡ€Π°Π²ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ использованиС этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈΠ»ΠΈ Π·Π° Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΎΠ²Ρ‹Π΅ послСдствия.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот инструмСнт отвСтствСнно ΠΈ Π² соотвСтствии со всСми ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌΠΈ Π·Π°ΠΊΠΎΠ½Π°ΠΌΠΈ.

Бпасибо Π·Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ebook2audiobook!

Запуск локально

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

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

</a>

Запуск ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ

ГрафичСский интСрфСйс (GUI)

<details> <summary>НаТмитС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ изобраТСния Π²Π΅Π±-интСрфСйса</summary> </details>

Π”Π΅ΠΌΠΎ

Π”Π΅ΠΌΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ голоса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

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

<details> <summary>Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π΄Π΅ΠΌΠΎ</summary>

Голос ASMR

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

Голос Π΄ΠΎΠΆΠ΄Π»ΠΈΠ²ΠΎΠ³ΠΎ дня

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

Голос Π‘ΠΊΠ°Ρ€Π»Π΅Ρ‚Ρ‚

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

Голос Дэвида АттСнборо

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

</details>

README.md

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ВозмоТности

  • πŸ”§ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ TTS: XTTSv2, Bark, Fairseq, VITS, Tacotron2, Tortoise, GlowTTS, YourTTS

  • πŸ“š ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²: .epub, .mobi, .azw3, .fb2, .lrf, .rb, .snb, .tcr, .pdf, .txt, .rtf, .doc, .docx, .html, .odt, .azw, .tiff, .tif, .png, .jpg, .jpeg, .bmp, .zip

  • πŸ’» ВСкстовоС ΠΏΠΎΠ»Π΅ для прямого прСобразования ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ тСкста Π² Π°ΡƒΠ΄ΠΈΠΎ

  • πŸ” Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ OCR для Ρ„Π°ΠΉΠ»ΠΎΠ² с тСкстовыми страницами Π² Π²ΠΈΠ΄Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

  • πŸ”Š ВысококачСствСнноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π² Ρ€Π΅Ρ‡ΡŒ, ΠΎΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ настоящСго голоса

  • πŸ—£οΈ ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ голоса с использованиСм вашСго собствСнного голосового Ρ„Π°ΠΉΠ»Π°

  • 🌐 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ 1158 языков (supported languages list)

  • πŸ’» Π”Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π΅Π½ ΠΊ слабым рСсурсам β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° 2 Π“Π‘ ΠžΠ—Π£ / 1 Π“Π‘ VRAM (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ)

  • 🎡 Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π²Ρ‹Π²ΠΎΠ΄Π° Π°ΡƒΠ΄ΠΈΠΎΠΊΠ½ΠΈΠ³ΠΈ: mono or stereo aac, flac, mp3, m4b, m4a, mp4, mov, ogg, wav, webm

  • 🧠 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Π³ΠΎΠ² SML β€” Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ прСрываниями, ΠΏΠ°ΡƒΠ·Π°ΠΌΠΈ, смСной голоса ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ (see below)

  • 🧩 ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ модСль с использованиСм вашСй собствСнной ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (XTTSv2, VITS, FAIRSEQ, PIPER, others on request)

  • πŸŽ›οΈ Π”ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ прСдустановлСнныС ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ E2A

    <i>(Π‘Π²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈΠ»ΠΈ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ спискС прСдустановок)</i>

ВрСбования ΠΊ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ

  • 2 Π“Π‘ ΠžΠ—Π£ ΠΌΠΈΠ½., 8 Π“Π‘ рСкомСндуСтся.
  • 1 Π“Π‘ VRAM ΠΌΠΈΠ½., 4 Π“Π‘ рСкомСндуСтся.
  • Виртуализация Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΡ€ΠΈ запускС Π² Windows (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Docker).
  • CPU, XPU (intel, AMD, ARM)*.
  • CUDA, ROCm, JETSON
  • MPS (CPU Apple Silicon)

*<i> Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ TTS ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ Π½Π° CPU, поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ TTS Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ качСства, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ YourTTS, Tacotron2 ΠΈ Ρ‚. Π΄.</i>

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ языки

Арабский (ar)ΠšΠΈΡ‚Π°ΠΉΡΠΊΠΈΠΉ (zh)Английский (en)Испанский (Ρ‹Π΅)
Ѐранцузский (fr)НСмСцкий (de)Π˜Ρ‚Π°Π»ΡŒΡΠ½ΡΠΊΠΈΠΉ (it)ΠŸΠΎΡ€Ρ‚ΡƒΠ³Π°Π»ΡŒΡΠΊΠΈΠΉ (pt)
Польский (pl)Π’ΡƒΡ€Π΅Ρ†ΠΊΠΈΠΉ (tr)Русский (ru)Голландский (nl)
ЧСшский (cs)Японский (ja)Π₯ΠΈΠ½Π΄ΠΈ (hi)Π‘Π΅Π½Π³Π°Π»ΡŒΡΠΊΠΈΠΉ (bn)
ВСнгСрский (hu)ΠšΠΎΡ€Π΅ΠΉΡΠΊΠΈΠΉ (ko)Π’ΡŒΠ΅Ρ‚Π½Π°ΠΌΡΠΊΠΈΠΉ (vi)ШвСдский (sv)
ΠŸΠ΅Ρ€ΡΠΈΠ΄ΡΠΊΠΈΠΉ (fa)Π™ΠΎΡ€ΡƒΠ±Π° (yo)Π‘ΡƒΠ°Ρ…ΠΈΠ»ΠΈ (sw)ИндонСзийский (id)
Π‘Π»ΠΎΠ²Π°Ρ†ΠΊΠΈΠΉ (sk)Π₯орватский (hr)Вамильский (ta)Датский (da)

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ элСктронных ΠΊΠ½ΠΈΠ³

  • .epub, .pdf, .mobi, .txt, .html, .rtf, .chm, .lit, .pdb, .fb2, .odt, .cbr, .cbz, .prc, .lrf, .pml, .snb, .cbc, .rb, .tcr
  • Π›ΡƒΡ‡ΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹: .epub ΠΈΠ»ΠΈ .mobi для автоматичСского опрСдСлСния Π³Π»Π°Π²

Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

  • .m4b, .m4a, .mp4, .webm, .mov, .mp3, .flac, .wav, .ogg, .aac
  • Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² lib/conf.py

ДоступныС Ρ‚Π΅Π³ΠΈ SML

  • [break] β€” Ρ‚ΠΈΡˆΠΈΠ½Π° (случайный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 0.3–0.6 sec.)
  • [pause] β€” Ρ‚ΠΈΡˆΠΈΠ½Π° (случайный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 1.0–1.6 sec.)
  • [pause:N] β€” фиксированная ΠΏΠ°ΡƒΠ·Π° (N sec.)
  • [voice:/path/to/voice/file]...[/voice] β€” ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ голоса с голоса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· GUI/CLI

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ наш Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для автоматичСского добавлСния SML Π² Π²Π°ΡˆΡƒ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ -> E2A-SML

Π’Π°ΠΆΠ½ΠΎ **ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ с установкой ΠΈΠ»ΠΈ ошибкС, Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΈΡ‰ΠΈΡ‚Π΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡

Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ вашСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΅Ρ‰Ρ‘ Π½Π΅ сущСствуСт.**

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ **Π€ΠΎΡ€ΠΌΠ°Ρ‚ EPUB Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ стандартной структуры, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π³Π»Π°Π²Π°, Π°Π±Π·Π°Ρ†, прСдисловиС ΠΈ Ρ‚. Π΄.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сначала Π²Π°ΠΌ слСдуСт Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ вСсь тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π² Π°ΡƒΠ΄ΠΈΠΎ.**

Instructions

  1. Clone repo

    bash
    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. УстановитС / ЗапуститС ebook2audiobook:

    • Linux/MacOS

      bash
      ./ebook2audiobook.command
      

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

    • Π›Π°ΡƒΠ½Ρ‡Π΅Ρ€ для Mac
      Π”Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Ρ‘Π»ΠΊΠ½ΠΈΡ‚Π΅ Mac Ebook2Audiobook Launcher.command

    • Windows

      bash
      ebook2audiobook.cmd
      

      or Double click ebook2audiobook.cmd

      <i>ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Windows: устанавливаСтся scoop для установки ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π±Π΅Π· ΠΏΡ€Π°Π² администратора.</i>

  3. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: НаТмитС Π½Π° URL, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ элСктронныС ΠΊΠ½ΠΈΠ³ΠΈ. http://localhost:7860/

  4. Для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΉ ссылки: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (всС ОБ)

Π’Π°ΠΆΠ½ΠΎ **Если скрипт остановлСн ΠΈ Π·Π°ΠΏΡƒΡ‰Π΅Π½ снова, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ваш интСрфСйс Gradio GUI

Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Π±-страница смогла ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ сокСту соСдинСния.**

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]: ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ вашСй элСктронной ΠΊΠ½ΠΈΠ³ΠΈ

  • [--voice]: ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ для клонирования голоса (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ)

  • [--language]: Код языка Π² ISO-639-3 (Ρ‚. Π΅.: ita для ΠΈΡ‚Π°Π»ΡŒΡΠ½ΡΠΊΠΎΠ³ΠΎ, eng для английского, deu для Π½Π΅ΠΌΠ΅Ρ†ΠΊΠΎΠ³ΠΎ...).

    Π―Π·Ρ‹ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” eng, ΠΈ --language являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для языка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ./lib/lang.py.

    Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π²ΡƒΡ…Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ISO-639-1.

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>: ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ model_name.zip, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ (Π² зависимости ΠΎΡ‚ Π΄Π²ΠΈΠΆΠΊΠ° tts) всС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

    (см. ./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

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•: Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ gradio/gui, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, просто Π½Π°ΠΆΠΌΠΈΡ‚Π΅ [X] ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ элСктронной ΠΊΠ½ΠΈΠ³ΠΈ. Π‘ΠžΠ’Π•Π’: Ссли Π½ΡƒΠΆΠ½Π° Ρ‡ΡƒΡ‚ΡŒ большая ΠΏΠ°ΡƒΠ·Π°, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ '[pause:3]' для 3 сСк. ΠΈ Ρ‚. Π΄.

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

РаспространённыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Docker

Π”ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ (fine-tuned) ΠΌΠΎΠ΄Π΅Π»ΠΈ TTS

Π”ΠΎΠΎΠ±ΡƒΡ‡ΠΈΡ‚Π΅ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ модСль XTTSv2

Universal_TTS_Finetune

Π¨ΡƒΠΌΠΎΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ TTS

Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ XTTSv2 обязатСлСн рСфСрСнсный Π°ΡƒΠ΄ΠΈΠΎΠΊΠ»ΠΈΠΏ голоса:

Π’Π°ΡˆΠ° собствСнная настройка Ebook2Audiobook

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ свободно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ libs/conf.py, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ настройки. Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, просто сдСлайтС копию ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ conf.py, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ebook2audiobook Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию вашСго ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠ³ΠΎ conf.py ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π». Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ процСсс для models.py. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ модСль ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ модСлью ebook2audiobook, поТалуйста, ΡΠ²ΡΠΆΠΈΡ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ, ΠΈ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‘ Π² список прСдустановок.

Reverting to older Versions

Releases can be found -> here

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

РаспространённыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • Мой графичСский процСссор NVIDIA/ROCm/XPU/MPS Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½?? -> GPU ISSUES Wiki Page
  • CPU ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ (Π»ΡƒΡ‡ΡˆΠ΅ Π½Π° сСрвСрном SMP CPU), Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ GPU ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ этого (Однако Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ клонирования голоса zero-shot, ΠΈ это голоса качСства Siri, Π½ΠΎ ΠΎΠ½ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС Π½Π° cpu).
  • Β«Π£ мСня ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с зависимостями» - ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ docker, ΠΎΠ½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ΅Π½ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ headless, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --help Π² ΠΊΠΎΠ½Π΅Ρ† ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ docker run для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.
  • Β«Π£ мСня ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΎΠ±Ρ€Π΅Π·Π°Π½Π½Ρ‹ΠΌ Π·Π²ΡƒΠΊΠΎΠΌ!Β» - ΠŸΠžΠ–ΠΠ›Π£Π™Π‘Π’Π, Π‘ΠžΠ—Π”ΠΠ™Π’Π• ΠžΠ‘ ЭВОМ ISSUE, ΠΌΡ‹ Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ языкС ΠΈ нуТдаСмся Π² совСтах ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ разбиСния ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.😊

Π”Πš

  • ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΊΠ»Π°Π΄ΠΎΠ² ⭐
  • Π›ΡŽΠ±Π°Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΎΡ‚ людСй, говорящих Π½Π° любом ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… языков, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π½Π°ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ⭐
  • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ просмотр Π±Π»ΠΎΠΊΠΎΠ²/Π³Π»Π°Π² ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ прСобразования
  • Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ для измСнСния хирургичСского тСкста
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Ρ‚Π΅Π³ΠΎΠ² SML для голоса, ΠΏΠ°ΡƒΠ·Ρ‹, ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  • -h -help информация ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках
  • Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ OCR для PDF / JPG / BMP / PNG / tiff
  • Папка записных ΠΊΠ½ΠΈΠΆΠ΅ΠΊ ΠžΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ здСсь
  • Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ тСкста Π½Π° китайском языкС Π½Π΅ раздСляло слова, ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ врСмя ΠΏΠ°ΡƒΠ·Ρ‹ ΠžΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ здСсь
  • Dockerfile
  • <bpt i="1" type="283" x="1"/>Docker Compose<ept i="1"/>;
  • Подман сочиняСт
  • Ноутбук Kaggle
  • Записная ΠΊΠ½ΠΈΠΆΠΊΠ° Google Colab
  • Make a IOS app
  • Make an android app
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π°ΡƒΠ΄ΠΈΠΎΠΊΠ½ΠΈΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ»ΠΊΠΎΠΉ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

  • ΠžΠΏΡ†ΠΈΡ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° элСктронной ΠΊΠ½ΠΈΠ³ΠΈ
  • Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Ρ‹Π²ΠΎΠ΄Π°
  • Папка для ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ элСктронных ΠΊΠ½ΠΈΠ³
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ с многопроцСссорной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ
  • ΠŸΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ элСктронных ΠΊΠ½ΠΈΠ³
  • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ устройства GPU
  • Π¨ΡƒΠΌΠΎΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ любого рСфСрСнсного Π°ΡƒΠ΄ΠΈΠΎ для Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ клонирования голоса,
  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ (ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ XTTSv2. большС ΠΏΠΎ запросу)
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ модСль СвропСйского ΠΏΠΎΡ€Ρ‚ΡƒΠ³Π°Π»ΡŒΡΠΊΠΎΠ³ΠΎ хотя Π±Ρ‹ для xttsv2, fairseq, vits, piper (ΠΏΠΎΠΌΠΎΡ‰ΡŒ привСтствуСтся)
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ модСль синдхи хотя Π±Ρ‹ для xttsv2, fairseq, vits, piper (ΠΏΠΎΠΌΠΎΡ‰ΡŒ привСтствуСтся)

Π”Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ TTS

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Readme

  • Арабский (ara)
  • ΠšΠΈΡ‚Π°ΠΉΡΠΊΠΈΠΉ (zho)
  • Английский (ENG)
  • Испанский (спа)
  • Ѐранцузский (Ρ„Ρ€Π°)
  • НСмСцкий (DEU)
  • Π˜Ρ‚Π°Π»ΡŒΡΠ½ΡΠΊΠΈΠΉ (ΠΈΡ‚Π°)
  • ΠŸΠΎΡ€Ρ‚ΡƒΠ³Π°Π»ΡŒΡΠΊΠΈΠΉ (por)
  • Польский (pol)
  • Π’ΡƒΡ€Π΅Ρ†ΠΊΠΈΠΉ (tur)
  • Russian (rus)
  • Голландский (nld)
  • ЧСшский (ces)
  • Японский (jpn)
  • Π₯ΠΈΠ½Π΄ΠΈ
  • Π‘Π΅Π½Π³Π°Π»ΡŒΡΠΊΠΈΠΉ (ben)
  • Hungarian (HUN)
  • ΠšΠΎΡ€Π΅ΠΉΡΠΊΠΈΠΉ (ΠΊΠΎΡ€)
  • Π’ΡŒΠ΅Ρ‚Π½Π°ΠΌΡΠΊΠΈΠΉ (VIE)
  • ШвСдский (Swe)
  • ΠŸΠ΅Ρ€ΡΠΈΠ΄ΡΠΊΠΈΠΉ (фас)
  • Π™ΠΎΡ€ΡƒΠ±Π° (ΠΉΠΎΡ€)
  • Π‘ΡƒΠ°Ρ…ΠΈΠ»ΠΈ (сва)
  • ИндонСзийский (ΠΈΠ½Π΄.)
  • Π‘Π»ΠΎΠ²Π°Ρ†ΠΊΠΈΠΉ (slk)
  • Π₯орватский (Π³Ρ€Π½)

🐍 Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ОБ

  • 🍎 Mac Intel x86
  • πŸͺŸ Windows x86
  • Linux (rpm-based) x86
  • πŸ–₯️🍏 Apple Silicon Mac
  • Окна πŸͺŸπŸ’ͺ РЫЧАГА
  • 🐧πŸ’ͺ ARM LINUX

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΠΊ для обучСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ (всС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Coqui-tts ΠΈ piper-tts Π² ΠΎΠ΄Π½ΠΎΠΉ простой ΠΊΠΎΠΌΠ°Π½Π΄Π΅)

  • Π—Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± этом @DrewThomasson, ΠΎΠ½ сСйчас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ этого, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ здСсь
  • Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ простой Π² использовании графичСский интСрфСйс обучСния для всСх ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ coqui-tts Π² ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π°Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ljspeech здСсь ΠΎΡ‚ coqui tts

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Python для участников

  • Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ пустой строки ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ функциями ΠΈ классами.
  • ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для всСх ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΊΡ€ΠΎΠΌΠ΅ dict() ΠΈ json. dict['key'] всСгда вызываСтся с ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ
  • отступ Π² 4 ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Π²ΠΎΠΎΠ±Ρ‰Π΅ Π±Π΅Π· табуляции
  • строгая типизация для всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ объявлСния ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
  • Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Β«->Β» ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

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

ВрСбуСтся ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ оборудования для Π±Π΅Ρ‚Π°-тСстов

ΠœΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ любоС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ для тСстирования нашСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • Nvidia ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ cuda >= 11,8
  • ΠšΠ°Ρ€Ρ‚Ρ‹ XPU Intel
  • ΠšΠ°Ρ€Ρ‚Ρ‹ ROCm AMD, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ROCm >=5,7

@DrewThomasson, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ способом! πŸ˜ƒ

<!-- ## НуТно Π»ΠΈ Π²Π°ΠΌ Π°Ρ€Π΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ GPU для усилСния нашСго сСрвиса? - ΠžΠΏΡ€ΠΎΡ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ здСсь https://github.com/DrewThomasson/ebook2audiobook/discussions/889 -->

Особая Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ