Back to Ebook2audiobook

📚 ebook2audiobook (E2A)

readme/README_ara.md

26.6.936.2 KB
Original Source

📚 ebook2audiobook (E2A)

محوّل CPU/GPU من الكتاب الإلكتروني إلى كتاب صوتي مع الفصول والبيانات الوصفية

باستخدام محركات TTS المتقدمة وغير ذلك الكثير.

يدعم استنساخ الصوت و1158 لغة!

[!IMPORTANT] هذه الأداة مخصصة للاستخدام فقط مع الكتب الإلكترونية الخالية من 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 GB RAM / 1 GB 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 جيجابايت RAM كحد أدنى، 8 جيجابايت موصى به.
  • 1 جيجابايت VRAM كحد أدنى، 4 جيجابايت موصى به.
  • المحاكاة الافتراضية مُفعّلة عند التشغيل على windows (Docker فقط).
  • CPU، XPU (intel، AMD، ARM)*.
  • CUDA، ROCm، JETSON
  • MPS (معالج Apple Silicon)

*<i> محركات TTS الحديثة بطيئة جدًا على CPU، لذا استخدم TTS أقل جودة مثل YourTTS وTacotron2 وما إلى ذلك.</i>

اللغات المدعومة

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)

صيغ الكتب الإلكترونية المدعومة

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

[!IMPORTANT] **قبل نشر مشكلة تثبيت أو خطأ، ابحث بعناية في علامة تبويب المشكلات المفتوحة والمغلقة

للتأكد من أن مشكلتك غير موجودة بالفعل.**

[!NOTE] **تفتقر صيغة EPUB إلى أي بنية معيارية لما هو الفصل أو الفقرة أو المقدمة وما إلى ذلك.

لذا يجب عليك أولًا أن تزيل يدويًا أي نص لا ترغب في تحويله إلى صوت.**

التعليمات

  1. استنسخ المستودع

    bash
    git clone https://github.com/DrewThomasson/ebook2audiobook.git
    cd ebook2audiobook
    
  2. ثبّت / شغّل ebook2audiobook:

    • Linux/MacOS

      bash
      ./ebook2audiobook.command
      

      <i>ملاحظة لمستخدمي macOS: يتم تثبيت homebrew لتثبيت البرامج المفقودة.</i>

    • مشغّل Mac
      انقر نقرًا مزدوجًا على Mac Ebook2Audiobook Launcher.command

    • Windows

      bash
      ebook2audiobook.cmd
      

      أو انقر نقرًا مزدوجًا على ebook2audiobook.cmd

      <i>ملاحظة لمستخدمي Windows: يتم تثبيت scoop لتثبيت البرامج المفقودة دون امتيازات المسؤول.</i>

  3. افتح تطبيق الويب: انقر على الرابط المتوفر في الطرفية للوصول إلى تطبيق الويب وتحويل الكتب الإلكترونية. http://localhost:7860/

  4. للحصول على رابط عام: ./ebook2audiobook.command --share (Linux/MacOS) ebook2audiobook.cmd --share (Windows) python app.py --share (all OS)

[!IMPORTANT] **إذا تم إيقاف السكربت وتشغيله مرة أخرى، فستحتاج إلى تحديث واجهة Gradio الرسومية

للسماح لصفحة الويب بإعادة الاتصال بمقبس الاتصال الجديد.**

الاستخدام الأساسي

  • 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 المكونة من حرفين.

مثال على رفع نموذج مخصص بصيغة Zip

(يجب أن يكون ملف .zip يحتوي على ملفات النموذج الإلزامية. مثال لـ XTTSv2: config.json وmodel.pth وvocab.json و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>ملاحظة: إن ref.wav لنموذجك المخصص هو دائمًا الصوت المحدد للتحويل</i>

  • <custom_model_path>: مسار ملف model_name.zip، الذي يجب أن يحتوي (وفقًا لمحرك tts) على جميع الملفات الإلزامية

    (انظر ./lib/models.py).
    

للحصول على دليل مفصّل مع قائمة بجميع المعاملات المستخدمة

  • Linux/MacOS
    bash
    ./ebook2audiobook.command --help
    
  • Windows
    bash
    ebook2audiobook.cmd --help
    
  • أو لجميع أنظمة التشغيل 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. استنسخ المستودع:
bash
   git clone https://github.com/DrewThomasson/ebook2audiobook.git
   cd ebook2audiobook
  1. ابنِ الحاوية
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. شغّل الحاوية:
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..
  • ملاحظة: MPS غير مكشوف في docker لذا يجب استخدام CPU

مشكلات Docker الشائعة

نماذج TTS المضبوطة بدقة (fine-tuned)

اضبط نموذج XTTSv2 الخاص بك بدقة

إزالة الضوضاء من بيانات التدريب

مجموعة نماذج TTS المضبوطة بدقة

بالنسبة إلى نموذج XTTSv2 المخصص، يكون مقطع صوتي مرجعي للصوت إلزاميًا:

تخصيصك الخاص لـ Ebook2Audiobook

أنت حر في تعديل libs/conf.py لإضافة أو إزالة الإعدادات التي تريدها. إذا كنت تخطط للقيام بذلك، فما عليك سوى إنشاء نسخة من conf.py الأصلي بحيث يمكنك في كل تحديث لـ ebook2audiobook عمل نسخة احتياطية من conf.py المعدّل وإعادة وضع الأصلي. يجب عليك التخطيط للعملية نفسها بالنسبة لـ models.py. إذا كنت ترغب في جعل نموذجك المخصص نموذج ebook2audiobook رسميًا مضبوطًا بدقة، فيرجى الاتصال بنا وسنضيفه إلى قائمة الإعدادات المسبقة.

العودة إلى الإصدارات الأقدم

يمكن العثور على الإصدارات -> هنا

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

المشكلات الشائعة:

  • لا يتم اكتشاف بطاقة NVIDIA/ROCm/XPU/MPS الرسومية لدي؟؟ -> GPU ISSUES Wiki Page
  • المعالج بطيء (أفضل على معالج خادم SMP) بينما يمكن لبطاقة GPU إجراء تحويل شبه فوري. Discussion about this (لكنه لا يحتوي على استنساخ صوت zero-shot، وهي أصوات بجودة Siri، لكنه أسرع بكثير على cpu).
  • "أواجه مشكلات في التبعيات" - ما عليك سوى استخدام docker، فهو مكتفٍ ذاتيًا تمامًا وله وضع بدون واجهة، أضف المعامل --help في نهاية أمر docker run للمزيد من المعلومات.
  • "أواجه مشكلة في انقطاع الصوت!" - يرجى إنشاء ISSUE حول هذا، نحن لا نتحدث كل لغة ونحتاج إلى نصيحة من المستخدمين لضبط منطق تقسيم الجمل بدقة.😊

***** خارطة الطريق *****

  • جميع الميزات مفتوحة للمساهمات العامة ⭐
  • أي مساعدة من أشخاص يتحدثون أيًا من اللغات المدعومة لمساعدتنا في تحسين النماذج ⭐
  • معاينة الكتل/الفصول قبل بدء التحويل
  • التحرير لكل جملة محوّلة لتغيير نصي دقيق
  • دمج وسوم SML للصوت والتوقف والفاصل والمزيد من التغييرات
  • معلومات معاملات -h -help بلغات مختلفة
  • مسح OCR لملفات PDF / JPG / BMP / PNG / TIFF
  • مجلد Notebooks Talked about here
  • جعل تقسيم النص الصيني لا يقسم الكلمات وتحسين توقيت الفواصل Talked about here
  • Dockerfile
  • Docker compose
  • Podman compose
  • دفتر Kaggle
  • دفتر Google Colab
  • إنشاء تطبيق iOS
  • إنشاء تطبيق android
  • دمج Audiobookshelf

خيارات إضافية

  • خيار ترجمة الكتاب الإلكتروني
  • خيارات صيغة الإخراج
  • مجلد كتب إلكترونية دفعي
  • تحويل متعدد المعالجة
  • تحويل مجلد كتب إلكترونية دفعي
  • اكتشاف جهاز GPU
  • إزالة الضوضاء من أي صوت مرجعي لرفع استنساخ الصوت،
  • رفع نموذج مخصص (XTTSv2 فقط حاليًا. المزيد عند الطلب)
  • إضافة نموذج لغة البرتغالية الأوروبية على الأقل لـ xttsv2 وfairseq وvits وpiper (المساعدة مرحب بها)
  • إضافة نموذج لغة السندية على الأقل لـ xttsv2 وfairseq وvits وpiper (المساعدة مرحب بها)

محركات TTS

ترجمة Readme

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

🐍 توافق نظام التشغيل

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

مبالغة إضافية لتدريب النماذج وما شابه (جميع نماذج Coqui-tts المدعومة وpiper-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 supporting cuda >= 11.8
  • XPU intel cards
  • ROCm AMD cards supporting ROCm >=5.7

@DrewThomasson إذا كنت ترغب في المساعدة بأي شكل من الأشكال! 😃

<!-- ## هل تحتاج إلى استئجار GPU لتعزيز خدمتنا؟ - استطلاع رأي مفتوح هنا https://github.com/DrewThomasson/ebook2audiobook/discussions/889 -->

شكر خاص