epub2tts est une application Python gratuite et open source permettant de créer facilement un livre audio complet à partir d'un fichier epub ou texte en utilisant une synthèse vocale réaliste de Coqui AI TTS, OpenAI ou MS Edge.
REMARQUE : NOUVELLE FONCTIONNALITÉ MULTITRAITEMENT AJOUTÉE ! Vous pouvez maintenant utiliser --threads N
pour spécifier le nombre de threads à exécuter où les chapitres seront traités en parallèle ! Si vous utilisez Edge ou OpenAI, vous pouvez définir des fils de discussion sur autant de chapitres que vous en avez et ils peuvent tous être traités en même temps. Lorsque vous utilisez TTS/XTTS, vous devrez faire quelques expériences pour voir ce que votre système peut gérer.
REMARQUE : consultez epub2tts-edge pour une alternative légère TRÈS rapide qui ne fonctionne qu'avec MS Edge. Cette version lit plusieurs phrases en parallèle et va beaucoup plus vite !
epub2tts mybook.epub --export txt
# Part 1
, etc. par les noms de chapitre souhaités et en supprimant les éléments préliminaires comme la table des matières et tout ce que vous ne voulez pas lire. Remarque : Les deux premières lignes peuvent être Titre : et Auteur : pour les utiliser dans les métadonnées du livre audio. REMARQUE AUSSI Après Auteur/Titre, la copie du livre DOIT commencer par un chapitre ou une section marqué par une ligne avec un dièse au début (comme # Introduction
).% <speaker>
après le nom du chapitre, par exemple # Chapter One % en-US-AvaMultilingualNeural
. Voir le fichier multi-speaker-sample-edge.txt
pour un exemple. Remarque : fonctionne uniquement avec le moteur multi-haut-parleurs Coqui TTS (par défaut) ou --engine edge
. Utilisation du modèle VITS, toutes les valeurs par défaut, aucun GPU requis :
epub2tts mybook.epub
(Pour changer de haut-parleur (ex p307 pour une bonne voix masculine avec Coqui TTS), ajoutez : --speaker p307
) Utilise Microsoft Edge TTS dans le cloud, GRATUIT, seulement un minimum de CPU requis et c'est assez rapide (100 minutes pour un livre de 7 heures par exemple). De nombreuses voix et langues parmi lesquelles choisir, et la qualité est vraiment bonne (écoutez sample-en-US-AvaNeural-edge.m4b
pour un exemple).
edge-tts --list-voices
, le haut-parleur par défaut est en-US-AndrewNeural
si --speaker
n'est pas spécifié.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
, déterminez par quelle partie commencer et terminer afin de pouvoir ignorer la table des matières, etc.epub2tts my-book.epub --start 4 --end 20 --xtts voice-1.wav,voice-2.wav,voice-3.wav --cover cover-image.jpg
--export txt
, cette option insère %P%
à chaque saut de paragraphe. Ensuite, lors de la création audio avec --engine edge
, chaque fois que %P%
est trouvé dans la copie, une pause de 1,2 seconde est insérée.Merci d'avance de signaler tout bug/problème que vous rencontrez ! Si vous rencontrez des problèmes, veuillez d'abord rechercher les problèmes existants pour voir si quelqu'un d'autre a déjà rencontré quelque chose de similaire.
Si vous avez trouvé quelque chose de nouveau, veuillez ouvrir un problème et assurez-vous d'inclure :
--debug --minratio 0
ajouté, pour obtenir plus d'informations--threads N
pour le multitraitement et la prise en charge des fichiers NCX qui améliore la détection de la façon dont le texte est séparé dans un epub.--skip-cleanup
pour ignorer le remplacement des caractères spéciaux par ","Les temps d'inférence typiques pour xtts_v2 étaient en moyenne sur 4 morceaux de traitement (environ 4 phrases chacun) auxquels on peut s'attendre :
| 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 |
La version Python requise est la 3.11.
Cette installation nécessite Python < 3.12 et Homebrew (j'utilise homebrew pour installer espeak, pyenv et ffmpeg). Selon ce bug, mecab devrait également être installé via homebrew.
Les modèles vocaux seront enregistrés localement dans ~/.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 .
Ces instructions concernent Ubuntu 22.04 (20.04 a montré quelques problèmes de dépendance), mais devraient fonctionner (avec les mods d'installation de packages appropriés) pour à peu près n'importe quel dépôt. Assurez-vous que ffmpeg
est installé avant utilisation. Si vous disposez d'un GPU NVIDIA, vous devez également installer la boîte à outils CUDA pour utiliser Deepspeed.
Les modèles vocaux seront enregistrés localement dans ~/.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 .
REMARQUE : Si Deepspeed est installé, il peut être détecté mais ne pas fonctionner correctement, provoquant des erreurs. Essayez d'installer la boîte à outils CUDA pour voir si cela résout le problème. Si cela ne résout pas le problème, ajoutez --no-deepspeed
et il ne sera pas utilisé. Dans ce cas également, ouvrez un problème avec vos coordonnées et nous l'examinerons.
Exécuter epub2tts dans WSL2 avec Ubuntu 22 est l'approche la plus simple, mais ces étapes devraient fonctionner pour une exécution directe sous Windows.
Installez les outils de génération Microsoft C++. Téléchargez le programme d'installation depuis https://visualstudio.microsoft.com/visual-cpp-build-tools/ puis exécutez le fichier téléchargé vs_BuildTools.exe
et cochez la case "C++ Build tools" en laissant toutes les options à leur valeur par défaut. Remarque : Cela nécessitera environ 7 Go d'espace sur le lecteur C.
Installez espeak-ng depuis https://github.com/espeak-ng/espeak-ng/releases/latest
Installer du chocolat
Installez ffmpeg avec la commande choco install ffmpeg
, assurez-vous que vous êtes dans une session PowerShell élevée.
Installez python 3.11 avec la commande choco install python311
Installez git avec la commande choco install git
.
Décidez où vous voulez que votre projet epub2tts vive, les documents sont un lieu commun. Une fois que vous avez trouvé un répertoire qui vous convient, clonez le projet avec git clone https://github.com/aedocw/epub2tts
et cd epub2tts pour que vous soyez maintenant dans votre répertoire de travail.
Il y a probablement plusieurs façons différentes de procéder ici, j'ai personnellement opté pour un venv pour que tout reste organisé. Créez un venv avec la commande python -m venv .venv
Activez le venv, sous Windows, la commande est légèrement différente lorsque vous émettez .venvscriptsactivate
Installez epub2tts avec les exigences avec les commandes pip install coqui-tts --only-binary spacy && pip install .
Si tout se passe bien, vous devriez pouvoir appeler epub2tts depuis votre venv et le mettre à jour à partir de ce répertoire à l'avenir. Pour mettre à jour, utilisez git pull
puis pip install . --upgrade
Quelques erreurs que vous pouvez rencontrer
pip install lxml
pour installer la dernière version manuellement, puis réexécutez pip install .
python -c "import nltk"
puis python -m nltk.downloader punkt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
--no-deepspeed
et il ne sera pas utilisé.REMARQUE : L'image Docker n'a pas été récemment mise à jour ou testée. Elle peut fonctionner mais est obsolète.
Les modèles vocaux seront enregistrés localement dans ~/.local/share/tts
L'utilisation de Docker n'utilise pas le GPU de manière fiable, si quelqu'un souhaite travailler à l'amélioration, votre PR sera le bienvenu !
Pour Linux et 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'
Pour Windows : Pré-requis :
#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
? Christophe Aedo
Contributeurs
Les contributions, problèmes et demandes de fonctionnalités sont les bienvenus !
N'hésitez pas à consulter la page des problèmes ou la page de discussions.
Donnez un ️ si ce projet vous a aidé !