epub2tts ist eine kostenlose Open-Source-Python-App zum einfachen Erstellen eines voll ausgestatteten Hörbuchs aus einer Epub- oder Textdatei mit realistischer Text-to-Speech-Funktion von Coqui AI TTS, OpenAI oder MS Edge.
HINWEIS: NEUE MULTIPROCESSING-FUNKTION HINZUGEFÜGT! Sie können jetzt mit --threads N
die Anzahl der auszuführenden Threads angeben, in denen Kapitel parallel verarbeitet werden! Wenn Sie Edge oder OpenAI verwenden, können Sie Threads auf so viele Kapitel festlegen, wie Sie haben, und sie können alle gleichzeitig verarbeitet werden. Wenn Sie TTS/XTTS verwenden, müssen Sie etwas experimentieren, um herauszufinden, was Ihr System verarbeiten kann.
HINWEIS: Schauen Sie sich epub2tts-edge an, um eine SEHR schnelle, leichte Alternative zu finden, die nur mit MS Edge funktioniert. Diese Version liest mehrere Sätze parallel und geht viel schneller!
epub2tts mybook.epub --export txt
# Part 1
usw. durch die gewünschten Kapitelnamen und entfernen Sie Titel wie das Inhaltsverzeichnis und alles andere, was Sie nicht lesen möchten. Hinweis: Die ersten beiden Zeilen können Titel: und Autor: sein, um diese in Hörbuch-Metadaten zu verwenden. BEACHTEN SIE AUCH: Nach Autor/Titel MUSS das Buchexemplar mit einem Kapitel oder Abschnitt beginnen, der durch eine Zeile mit einem Rautenzeichen am Anfang gekennzeichnet ist (z. B. # Introduction
).% <speaker>
nach dem Kapitelnamen angehängt wird, zum Beispiel # Chapter One % en-US-AvaMultilingualNeural
. Ein Beispiel finden Sie in der Datei multi-speaker-sample-edge.txt
. Hinweis: Funktioniert nur mit der Coqui TTS Multi-Speaker Engine (Standard) oder --engine edge
. Unter Verwendung des VITS-Modells, alle Standardeinstellungen, keine GPU erforderlich:
epub2tts mybook.epub
(Um den Sprecher zu ändern (ex p307 für eine gute männliche Stimme mit Coqui TTS), fügen Sie hinzu: --speaker p307
) Verwendet Microsoft Edge TTS in der Cloud, KOSTENLOS, erfordert nur minimale CPU-Leistung und ist ziemlich schnell (z. B. 100 Minuten für ein 7-Stunden-Buch). Viele Stimmen und Sprachen stehen zur Auswahl, und die Qualität ist wirklich gut (hören Sie sich sample-en-US-AvaNeural-edge.m4b
als Beispiel an).
edge-tts --list-voices
auflisten, Standardsprecher ist en-US-AndrewNeural
wenn --speaker
nicht angegeben ist.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
: Bestimmen Sie, welcher Teil beginnen und enden soll, damit Sie das Inhaltsverzeichnis usw. überspringen können.epub2tts my-book.epub --start 4 --end 20 --xtts voice-1.wav,voice-2.wav,voice-3.wav --cover cover-image.jpg
--export txt
fügt diese Option %P%
bei jedem Absatzumbruch ein. Wenn dann Audio mit --engine edge
erstellt wird, wird jedes Mal, wenn %P%
in der Kopie gefunden wird, eine Pause von 1,2 Sekunden eingefügt.Vielen Dank im Voraus für die Meldung von Fehlern/Problemen, auf die Sie stoßen! Wenn Sie Probleme haben, suchen Sie bitte zunächst nach bestehenden Problemen, um zu sehen, ob jemand anderes zuvor auf etwas Ähnliches gestoßen ist.
Wenn Sie etwas Neues gefunden haben, eröffnen Sie bitte eine Ausgabe und geben Sie Folgendes an:
--debug --minratio 0
auszuführen, um weitere Informationen zu erhalten--threads N
für Multiprocessing und Unterstützung für NCX-Dateien, die die Erkennung des Wie verbessert Text wird in einem Epub getrennt.--skip-cleanup
hinzugefügt, um das Ersetzen von Sonderzeichen durch "," zu überspringen.Typische Inferenzzeiten für xtts_v2 im Durchschnitt über 4 Verarbeitungsblöcke (jeweils etwa 4 Sätze), die zu erwarten sind:
| 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 |
Erforderliche Python-Version ist 3.11.
Diese Installation erfordert Python < 3.12 und Homebrew (ich verwende Homebrew, um espeak, pyenv und ffmpeg zu installieren). Aufgrund dieses Fehlers sollte mecab auch über Homebrew installiert werden.
Sprachmodelle werden lokal in ~/.local/share/tts
gespeichert
#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 .
Diese Anweisungen gelten für Ubuntu 22.04 (20.04 zeigte einige Abhängigkeitsprobleme), sollten aber (mit entsprechenden Paketinstallations-Mods) für nahezu jedes Repo funktionieren. Stellen Sie vor der Verwendung sicher, dass Sie ffmpeg
installiert haben. Wenn Sie über eine NVIDIA-GPU verfügen, sollten Sie auch das CUDA-Toolkit installieren, um Deepspeed nutzen zu können.
Sprachmodelle werden lokal in ~/.local/share/tts
gespeichert
#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 .
HINWEIS: Wenn Sie Deepspeed installiert haben, wird es möglicherweise erkannt, funktioniert aber nicht ordnungsgemäß, was zu Fehlern führt. Versuchen Sie, das CUDA-Toolkit zu installieren, um zu sehen, ob das Problem dadurch behoben wird. Wenn das Problem dadurch nicht behoben wird, fügen Sie --no-deepspeed
hinzu und es wird nicht verwendet. Auch in diesem Fall eröffnen Sie ein Problem mit Ihren Daten und wir werden uns darum kümmern.
Das Ausführen von epub2tts in WSL2 mit Ubuntu 22 ist der einfachste Ansatz, aber diese Schritte sollten für die direkte Ausführung unter Windows funktionieren.
Installieren Sie Microsoft C++ Build Tools. Laden Sie das Installationsprogramm von https://visualstudio.microsoft.com/visual-cpp-build-tools/ herunter, führen Sie dann die heruntergeladene Datei vs_BuildTools.exe
aus und aktivieren Sie das Kontrollkästchen „C++ Build Tools“, wobei alle Optionen auf ihren Standardwerten bleiben. Hinweis: Dies erfordert etwa 7 GB Speicherplatz auf Laufwerk C.
Installieren Sie espeak-ng von https://github.com/espeak-ng/espeak-ng/releases/latest
Schokoladig einbauen
Installieren Sie ffmpeg mit dem Befehl choco install ffmpeg
. Stellen Sie sicher, dass Sie sich in einer Powershell-Sitzung mit erhöhten Rechten befinden.
Installieren Sie Python 3.11 mit dem Befehl choco install python311
Installieren Sie Git mit dem Befehl choco install git
.
Entscheiden Sie, wo Ihr epub2tts-Projekt gespeichert werden soll. Dokumente sind ein alltäglicher Ort. Sobald Sie ein Verzeichnis gefunden haben, mit dem Sie zufrieden sind, klonen Sie das Projekt mit git clone https://github.com/aedocw/epub2tts
und cd epub2tts, sodass Sie sich jetzt in Ihrem Arbeitsverzeichnis befinden.
Hier gibt es wahrscheinlich mehrere Möglichkeiten, ich persönlich habe mich für ein Venv entschieden, um alles organisiert zu halten. Erstellen Sie ein Venv mit dem Befehl python -m venv .venv
Aktivieren Sie venv. Unter Windows unterscheidet sich der Befehl geringfügig, wenn Sie .venvscriptsactivate
eingeben
Installieren Sie epub2tts zusammen mit den Anforderungen mit den Befehlen pip install coqui-tts --only-binary spacy && pip install .
Wenn alles gut geht, sollten Sie in der Lage sein, epub2tts von Ihrem Venv aus aufzurufen und es in Zukunft von diesem Verzeichnis aus zu aktualisieren. Zum Aktualisieren verwenden Sie git pull
und dann pip install . --upgrade
Es können einige Fehler auftreten
pip install lxml
aus, um die neueste Version manuell zu installieren, und führen Sie dann pip install .
python -c "import nltk"
und dann python -m nltk.downloader punkt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
--no-deepspeed
hinzu und es wird nicht verwendet.HINWEIS: Das Docker-Image wurde nicht kürzlich aktualisiert oder getestet, funktioniert möglicherweise, ist aber veraltet.
Sprachmodelle werden lokal in ~/.local/share/tts
gespeichert
Die Docker-Nutzung nutzt die GPU nicht zuverlässig. Wenn jemand daran arbeiten möchte, dies zu verbessern, ist Ihre PR sehr willkommen!
Für Linux und 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'
Für Windows : Voraussetzungen:
#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
? Christopher Aedo
Mitwirkende
Beiträge, Probleme und Funktionswünsche sind willkommen!
Schauen Sie sich gerne die Seite „Probleme“ oder „Diskussionen“ an.
Geben Sie ein ️, wenn Ihnen dieses Projekt geholfen hat!