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 ค่าเริ่มต้นทั้งหมด ไม่จำเป็นต้องใช้ GPU:
epub2tts mybook.epub
(หากต้องการเปลี่ยนลำโพง (เช่น p307 เพื่อให้ได้เสียงผู้ชายที่ดีด้วย 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
กำหนดว่าจะเริ่มและสิ้นสุดส่วนใดเพื่อให้คุณสามารถข้าม TOC ได้ ฯลฯ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 |
Python เวอร์ชันที่ต้องการคือ 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 แสดงปัญหาการพึ่งพาบางอย่าง) แต่ควรใช้งานได้ (พร้อมกับ mod ตัวติดตั้งแพ็คเกจที่เหมาะสม) สำหรับ repo ใด ๆ ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง ffmpeg
ก่อนใช้งาน หากคุณมี NVIDIA GPU คุณควรติดตั้งชุดเครื่องมือ CUDA เพื่อใช้งาน Deepspeed
โมเดลเสียงจะถูกบันทึกไว้ภายในเครื่องใน ~/.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 GB บนไดรฟ์ 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
การใช้งานนักเทียบท่าไม่ได้ใช้ GPU ได้อย่างน่าเชื่อถือ หากมีคนต้องการปรับปรุงสิ่งนี้ PR ของคุณจะได้รับการต้อนรับอย่างมาก!
สำหรับ 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
- คริสโตเฟอร์ เอโด้
ผู้ร่วมให้ข้อมูล
ยินดีต้อนรับการมีส่วนร่วม ปัญหา และการร้องขอคุณสมบัติ!
อย่าลังเลที่จะตรวจสอบหน้าปัญหาหรือหน้าการสนทนา
ให้️ถ้าโครงการนี้ช่วยคุณได้!