epub2tts هو تطبيق python مجاني ومفتوح المصدر لإنشاء كتاب صوتي كامل الميزات بسهولة من ملف epub أو ملف نصي باستخدام تحويل النص إلى كلام واقعي من Coqui AI TTS أو OpenAI أو MS Edge.
ملاحظة: تمت إضافة ميزة المعالجة المتعددة الجديدة! يمكنك الآن استخدام --threads N
لتحديد عدد سلاسل الرسائل التي سيتم تشغيلها حيث ستتم معالجة الفصول بالتوازي! إذا كنت تستخدم Edge أو OpenAI، فيمكنك تعيين سلاسل الرسائل لأكبر عدد ممكن من الفصول، ويمكن معالجتها جميعًا في نفس الوقت. عند استخدام TTS/XTTS، ستحتاج إلى إجراء بعض التجارب لمعرفة ما يمكن لنظامك التعامل معه.
ملاحظة: تحقق من epub2tts-edge للحصول على بديل خفيف الوزن وسريع جدًا يعمل فقط مع MS Edge. يقرأ هذا الإصدار عدة جمل بالتوازي ويعمل بشكل أسرع بكثير!
epub2tts mybook.epub --export txt
# Part 1
وما إلى ذلك بأسماء الفصول المطلوبة، وإزالة المادة الأمامية مثل جدول المحتويات وأي شيء آخر لا تريد قراءته. ملاحظة: يمكن أن يكون السطران الأولان هو العنوان: والمؤلف: لاستخدام ذلك في البيانات الوصفية للكتب الصوتية. لاحظ أيضًا بعد المؤلف/العنوان، يجب أن تبدأ نسخة الكتاب بفصل أو قسم محدد بخط مع علامة التجزئة في البداية (مثل # Introduction
).% <speaker>
بعد اسم الفصل، على سبيل المثال # Chapter One % en-US-AvaMultilingualNeural
. راجع الملف multi-speaker-sample-edge.txt
للحصول على مثال. ملاحظة: يعمل فقط مع محرك Coqui TTS متعدد السماعات (افتراضي) أو --engine edge
. باستخدام نموذج VITS، جميع الإعدادات الافتراضية، لا توجد حاجة لوحدة معالجة الرسومات:
epub2tts mybook.epub
(لتغيير مكبر الصوت (على سبيل المثال ص 307 للحصول على صوت ذكر جيد مع Coqui TTS)، أضف: --speaker p307
) يستخدم Microsoft Edge TTS في السحابة، مجانًا، ولا يتطلب سوى الحد الأدنى من وحدة المعالجة المركزية (CPU)، وهو سريع جدًا (100 دقيقة لكتاب مدته 7 ساعات على سبيل المثال). العديد من الأصوات واللغات للاختيار من بينها، والجودة جيدة حقًا (استمع إلى sample-en-US-AvaNeural-edge.m4b
على سبيل المثال).
edge-tts --list-voices
، ومكبر الصوت الافتراضي هو en-US-AndrewNeural
إذا لم يتم تحديد --speaker
.epub2tts mybook.txt --engine edge --speaker en-US-AvaNeural --cover cover-image.jpg --sayparts
epub2tts mybook.txt --engine xtts --speaker "Damien Black" --cover cover-image.jpg --sayparts
epub2tts mybook.epub --scan
، حدد الجزء الذي ستبدأ منه وتنتهي فيه حتى تتمكن من تخطي جدول المحتويات، وما إلى ذلك.epub2tts my-book.epub --start 4 --end 20 --xtts voice-1.wav,voice-2.wav,voice-3.wav --cover cover-image.jpg
--export txt
، يقوم هذا الخيار بإدراج %P%
عند كل فاصل فقرة. ثم عند إنشاء صوت باستخدام --engine edge
، في أي وقت يتم العثور على %P%
في النسخة، يتم إدخال توقف مؤقت لمدة 1.2 ثانية.نشكرك مقدمًا على الإبلاغ عن أي أخطاء/مشكلات تواجهها! إذا كنت تواجه مشكلات، فيرجى أولاً البحث عن المشكلات الموجودة لمعرفة ما إذا كان أي شخص آخر قد واجه شيئًا مشابهًا سابقًا.
إذا وجدت شيئًا جديدًا، فيرجى فتح مشكلة والتأكد من تضمين ما يلي:
--debug --minratio 0
للحصول على مزيد من المعلومات--threads N
للمعالجة المتعددة، ودعم ملفات NCX التي تعمل على تحسين اكتشاف كيفية يتم فصل النص في ملف epub.--skip-cleanup
لتخطي استبدال الأحرف الخاصة بـ ""،أوقات الاستدلال النموذجية لـ xtts_v2 يمكن توقعها في المتوسط على 4 مجموعات معالجة (حوالي 4 جمل لكل منها):
| Hardware | Inference Time |
|-------------------------------------|----------------|
| 20x CPU Xeon E5-2630 (without AVX) | 3.7x realtime |
| 20x CPU Xeon Silver 4214 (with AVX) | 1.7x realtime |
| 8x CPU Xeon Silver 4214 (with AVX) | 2.0x realtime |
| 2x CPU Xeon Silver 4214 (with AVX) | 2.9x realtime |
| Intel N4100 Atom (NAS) | 4.7x realtime |
| GPU RTX A2000 4GB (w/o deepspeed) | 0.4x realtime |
| GPU RTX A2000 4GB (w deepspeed) | 0.15x realtime |
إصدار بايثون المطلوب هو 3.11.
يتطلب هذا التثبيت وجود Python < 3.12 وHomebrew (أستخدم homebrew لتثبيت espeak وpyenv وffmpeg). وفقًا لهذا الخطأ، يجب أيضًا تثبيت mecab عبر homebrew.
سيتم حفظ النماذج الصوتية محليًا في ~/.local/share/tts
#install dependencies
brew install espeak pyenv ffmpeg mecab
#install epub2tts
git clone https://github.com/aedocw/epub2tts
cd epub2tts
pyenv install 3.11
pyenv local 3.11
#OPTIONAL but recommended - install this in a virtual environment
pip install coqui-tts --only-binary spacy
python -m venv .venv && source .venv/bin/activate
pip install .
هذه التعليمات مخصصة لـ Ubuntu 22.04 (أظهر 20.04 بعض مشكلات التبعية)، ولكن يجب أن تعمل (مع تعديلات تثبيت الحزمة المناسبة) لأي ريبو تقريبًا. تأكد من تثبيت ffmpeg
قبل الاستخدام. إذا كان لديك وحدة معالجة الرسومات NVIDIA، فيجب عليك أيضًا تثبيت مجموعة أدوات CUDA للاستفادة من السرعة العميقة.
سيتم حفظ النماذج الصوتية محليًا في ~/.local/share/tts
#install dependencies
sudo apt install espeak-ng ffmpeg
#If you have a CUDA-compatible GPU, run:
sudo apt install nvidia-cuda-toolkit
#clone the repo
git clone https://github.com/aedocw/epub2tts
cd epub2tts
pip install coqui-tts --only-binary spacy
pip install .
ملاحظة: إذا قمت بتثبيت برنامج Deepspeed، فقد يتم اكتشافه ولكنه لا يعمل بشكل صحيح، مما يتسبب في حدوث أخطاء. حاول تثبيت مجموعة أدوات CUDA لمعرفة ما إذا كان ذلك سيؤدي إلى حل المشكلة. إذا لم يحل ذلك المشكلة، أضف --no-deepspeed
ولن يتم استخدامه. وفي هذه الحالة أيضًا، افتح مشكلة بتفاصيلك وسننظر فيها.
يعد تشغيل epub2tts في WSL2 مع Ubuntu 22 هو الطريقة الأسهل، ولكن يجب أن تعمل هذه الخطوات للتشغيل مباشرة في Windows.
قم بتثبيت أدوات إنشاء Microsoft C++. قم بتنزيل برنامج التثبيت من https://visualstudio.microsoft.com/visual-cpp-build-tools/ ثم قم بتشغيل الملف الذي تم تنزيله vs_BuildTools.exe
وحدد مربع الاختيار "أدوات إنشاء C++" مع ترك جميع الخيارات بقيمتها الافتراضية. ملاحظة: سيتطلب ذلك حوالي 7 جيجابايت من المساحة على محرك الأقراص C.
قم بتثبيت espeak-ng من https://github.com/espeak-ng/espeak-ng/releases/latest
قم بتثبيت الشوكولاتة
قم بتثبيت ffmpeg باستخدام الأمر choco install ffmpeg
، وتأكد من أنك في جلسة Powershell مرتفعة.
قم بتثبيت python 3.11 باستخدام الأمر choco install python311
قم بتثبيت git باستخدام الأمر choco install git
.
حدد المكان الذي تريد أن يعيش فيه مشروع epub2tts الخاص بك، فالمستندات هي مكان شائع. بمجرد العثور على الدليل الذي يناسبك، انسخ المشروع باستخدام git clone https://github.com/aedocw/epub2tts
وcd epub2tts حتى تكون الآن في دليل العمل الخاص بك.
من المحتمل أن تكون هناك عدة طرق مختلفة يمكنك اتباعها هنا، وأنا شخصيًا اخترت venv للحفاظ على كل شيء منظمًا. قم بإنشاء venv باستخدام الأمر python -m venv .venv
قم بتنشيط venv، على نظام التشغيل Windows، يختلف الأمر قليلاً عندما تقوم بإصدار .venvscriptsactivate
قم بتثبيت epub2tts مع المتطلبات باستخدام الأمر pip install coqui-tts --only-binary spacy && pip install .
إذا سارت الأمور على ما يرام، فمن المفترض أن تكون قادرًا على الاتصال بـ epub2tts من داخل venv الخاص بك وتحديثه من هذا الدليل من الآن فصاعدًا. للتحديث، استخدم git pull
ثم pip install . --upgrade
بعض الأخطاء التي قد تواجهك
pip install lxml
لتثبيت الإصدار الأحدث يدويًا ثم أعد تشغيل pip install .
python -c "import nltk"
ثم python -m nltk.downloader punkt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
--no-deepspeed
ولن يتم استخدامه.ملاحظة: لم يتم تحديث أو اختبار صورة Docker مؤخرًا، وربما تعمل ولكنها قديمة.
سيتم حفظ النماذج الصوتية محليًا في ~/.local/share/tts
لا يستخدم استخدام Docker وحدة معالجة الرسومات (GPU) بشكل موثوق، وإذا أراد شخص ما العمل على تحسين هذا، فسيكون علاقاتك العامة موضع ترحيب كبير!
لنظام التشغيل Linux وMacOS :
alias epub2tts='docker run -e COQUI_TOS_AGREED=1 -v "$PWD:$PWD" -v ~/.local/share/tts:/root/.local/share/tts -w "$PWD" ghcr.io/aedocw/epub2tts:release'
لنظام التشغيل Windows : المتطلبات المسبقة:
#Example for running scan of "mybook.epub"
docker run -e COQUI_TOS_AGREED=1 -v ${PWD}/.local/share/tts:/root/.local/share/tts -v ${PWD}:/root -w /root ghcr.io/aedocw/epub2tts:release mybook.epub --scan
#Example for reading parts 3 through 15 of "mybook.epub"
docker run -e COQUI_TOS_AGREED=1 -v ${PWD}/.local/share/tts:/root/.local/share/tts -v ${PWD}:/root -w /root ghcr.io/aedocw/epub2tts:release mybook.epub --start 3 --end 15
#clone the repo
git clone https://github.com/aedocw/epub2tts
cd epub2tts
#create a virtual environment
python -m venv .venv
#activate the virtual environment
source .venv/bin/activate
#install dependencies
sudo apt install espeak-ng ffmpeg
pip install coqui-tts --only-binary spacy
pip install -r requirements.txt
git pull
pip install . --upgrade
؟ كريستوفر ايدو
المساهمين
المساهمات والقضايا وطلبات الميزات هي موضع ترحيب!
لا تتردد في مراجعة صفحة القضايا أو صفحة المناقشات.
قم بإعطاء ️ إذا كان هذا المشروع قد ساعدك!