epub2tts는 Coqui AI TTS, OpenAI 또는 MS Edge의 사실적인 텍스트 음성 변환을 사용하여 epub 또는 텍스트 파일에서 모든 기능을 갖춘 오디오북을 쉽게 만들 수 있는 무료 오픈 소스 Python 앱입니다.
참고: 새로운 멀티프로세싱 기능이 추가되었습니다! 이제 --threads N
사용하여 장이 병렬로 처리될 스레드 수를 지정할 수 있습니다! Edge 또는 OpenAI를 사용하는 경우 스레드를 원하는 만큼의 챕터로 설정할 수 있으며 동시에 모두 처리할 수 있습니다. TTS/XTTS를 사용할 때 시스템이 무엇을 처리할 수 있는지 확인하기 위해 몇 가지 실험을 해야 합니다.
참고: MS Edge에서만 작동하는 매우 빠르고 가벼운 대안을 보려면 epub2tts-edge를 확인하세요. 그 버전은 여러 문장을 병렬로 읽고 훨씬 더 빠르게 읽습니다!
epub2tts mybook.epub --export txt
# Part 1
등을 원하는 장 이름으로 바꾸고, 목차와 같은 앞부분과 읽고 싶지 않은 내용을 제거합니다. 참고: 처음 두 줄은 Title: 및 Author:로 오디오북 메타데이터에서 사용할 수 있습니다. 또한 참고: 저자/제목 다음에는 책 사본이 시작 부분에 해시마크가 있는 줄로 표시된 장이나 섹션으로 시작해야 합니다(예: # Introduction
).% <speaker>
추가하여 장별로 변경되도록 설정할 수 있습니다(예: # Chapter One % en-US-AvaMultilingualNeural
). 예를 보려면 multi-speaker-sample-edge.txt
파일을 참조하세요. 참고: Coqui TTS 다중 스피커 엔진(기본값) 또는 --engine edge
에서만 작동합니다. VITS 모델을 사용하면 모두 기본값이며 GPU가 필요하지 않습니다.
epub2tts mybook.epub
(스피커를 변경하려면(예: Coqui TTS를 사용하여 좋은 남성 음성을 위해 p307) 추가: --speaker p307
) 클라우드에서 Microsoft Edge TTS를 무료로 사용하며 최소한의 CPU만 필요하며 매우 빠릅니다(예: 7시간 예약의 경우 100분). 선택할 수 있는 음성과 언어가 많고 품질이 정말 좋습니다(예를 들어 sample-en-US-AvaNeural-edge.m4b
들어보세요).
edge-tts --list-voices
사용하여 사용 가능한 음성을 나열합니다. --speaker
지정되지 않은 경우 기본 스피커는 en-US-AndrewNeural
입니다.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에서 일부 종속성 문제가 있음)에 대한 것이지만 거의 모든 저장소에서 작동합니다(적절한 패키지 설치 프로그램 모드 사용). 사용하기 전에 ffmpeg
설치되어 있는지 확인하십시오. NVIDIA GPU가 있는 경우 deepspeed를 활용하려면 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
추가하면 사용되지 않습니다. 또한 이 경우에는 귀하의 세부정보에 대한 문제를 제기해 주시면 조사해 보겠습니다.
Ubuntu 22를 사용하여 WSL2에서 epub2tts를 실행하는 것이 가장 쉬운 방법이지만 이러한 단계는 Windows에서 직접 실행하는 경우에도 작동합니다.
Microsoft C++ 빌드 도구를 설치합니다. https://visualstudio.microsoft.com/visual-cpp-build-tools/에서 설치 프로그램을 다운로드한 다음 다운로드한 파일 vs_BuildTools.exe
를 실행하고 "C++ 빌드 도구" 확인란을 선택하여 모든 옵션을 기본값으로 둡니다. 참고: C 드라이브에 약 7GB의 공간이 필요합니다.
https://github.com/espeak-ng/espeak-ng/releases/latest에서 espeak-ng를 설치하세요.
초콜릿 설치
choco install ffmpeg
명령을 사용하여 ffmpeg를 설치하고 관리자 권한 Powershell 세션에 있는지 확인하세요.
choco install python311
명령을 사용하여 Python 3.11을 설치합니다.
choco install git
명령으로 git을 설치합니다.
epub2tts 프로젝트를 어디에 둘지 결정하세요. 문서는 일반적인 장소입니다. 만족스러운 디렉토리를 찾았으면 git clone https://github.com/aedocw/epub2tts
및 cd epub2tts를 사용하여 프로젝트를 복제하여 이제 작업 디렉토리에 있게 됩니다.
여기로 갈 수 있는 방법은 여러 가지가 있을 것입니다. 저는 개인적으로 모든 것을 정리하기 위해 Venv를 선택했습니다. python -m venv .venv
명령을 사용하여 venv를 생성합니다.
venv를 활성화하십시오. Windows에서는 .venvscriptsactivate
실행하면 명령이 약간 다릅니다.
pip install coqui-tts --only-binary spacy && pip install .
모든 것이 순조롭게 진행되면 Venv 내에서 epub2tts를 호출하고 앞으로 이 디렉터리에서 업데이트할 수 있어야 합니다. 업데이트하려면 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를 안정적으로 활용하지 않습니다. 누군가 이 문제를 개선하기 위해 노력하고 싶다면 귀하의 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
? 크리스토퍼 아에도
기여자
기여, 문제 및 기능 요청을 환영합니다!
문제 페이지나 토론 페이지를 자유롭게 확인하세요.
이 프로젝트가 도움이 되었다면 ️를 보내주세요!