epub2tts es una aplicación de Python gratuita y de código abierto para crear fácilmente un audiolibro con todas las funciones a partir de un archivo epub o de texto utilizando conversión de texto a voz realista de Coqui AI TTS, OpenAI o MS Edge.
NOTA: ¡NUEVA FUNCIÓN MULTIPROCESAMIENTO AÑADIDA! ¡Ahora puede usar --threads N
para especificar la cantidad de subprocesos a ejecutar donde los capítulos se procesarán en paralelo! Si está utilizando Edge u OpenAI, puede configurar subprocesos para tantos capítulos como tenga y todos se pueden procesar al mismo tiempo. Cuando utilice TTS/XTTS, necesitará experimentar un poco para ver qué puede manejar su sistema.
NOTA: Consulte epub2tts-edge para obtener una alternativa liviana MUY rápida que solo funciona con MS Edge. ¡Esa versión lee varias oraciones en paralelo y va mucho más rápido!
epub2tts mybook.epub --export txt
# Part 1
, etc. con los nombres de los capítulos deseados y eliminando el contenido inicial como la tabla de contenidos y cualquier otra cosa que no desee leer. Nota: Las dos primeras líneas pueden ser Título: y Autor: para usarlos en los metadatos del audiolibro. TENGA EN CUENTA TAMBIÉN Después de Autor/Título, la copia del libro DEBE comenzar con un capítulo o sección marcado por una línea con una almohadilla al principio (como # Introduction
).% <speaker>
después del nombre del capítulo, por ejemplo # Chapter One % en-US-AvaMultilingualNeural
. Consulte el archivo multi-speaker-sample-edge.txt
para ver un ejemplo. Nota: Solo funciona con el motor de múltiples altavoces Coqui TTS (predeterminado) o --engine edge
. Usando el modelo VITS, todos los valores predeterminados, no se requiere GPU:
epub2tts mybook.epub
(Para cambiar el altavoz (por ejemplo, p307 para una buena voz masculina con Coqui TTS), agregue: --speaker p307
) Utiliza Microsoft Edge TTS en la nube, GRATIS, solo requiere una CPU mínima y es bastante rápido (100 minutos para un libro de 7 horas, por ejemplo). Muchas voces e idiomas para elegir y la calidad es realmente buena (escuche sample-en-US-AvaNeural-edge.m4b
como ejemplo).
edge-tts --list-voices
, el altavoz predeterminado es en-US-AndrewNeural
si no se especifica --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
, determine en qué parte comenzar y finalizar para poder omitir TOC, 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
, esta opción inserta %P%
en cada salto de párrafo. Luego, al crear audio con --engine edge
, cada vez que se encuentre %P%
en la copia, se insertará una pausa de 1,2 segundos.¡Gracias de antemano por informar cualquier error o problema que encuentre! Si tiene problemas, primero busque los problemas existentes para ver si alguien más se ha encontrado con algo similar anteriormente.
Si ha encontrado algo nuevo, abra un problema y asegúrese de incluir:
--debug --minratio 0
agregado para obtener más información.--threads N
para multiprocesamiento y compatibilidad con archivos NCX que mejora la detección de cómo El texto está separado en un epub.--skip-cleanup
para omitir el reemplazo de caracteres especiales con ","Los tiempos de inferencia típicos para xtts_v2 promediaron los 4 fragmentos de procesamiento (aproximadamente 4 oraciones cada uno) que se pueden esperar:
| 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 versión requerida de Python es 3.11.
Esta instalación requiere Python < 3.12 y Homebrew (yo uso homebrew para instalar espeak, pyenv y ffmpeg). Según este error, mecab también debería instalarse mediante homebrew.
Los modelos de voz se guardarán localmente en ~/.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 .
Estas instrucciones son para Ubuntu 22.04 (20.04 mostró algunos problemas de dependencia), pero deberían funcionar (con las modificaciones de instalación de paquetes adecuadas) para casi cualquier repositorio. Asegúrese de tener ffmpeg
instalado antes de usarlo. Si tiene una GPU NVIDIA, también debe instalar el kit de herramientas CUDA para utilizar la velocidad profunda.
Los modelos de voz se guardarán localmente en ~/.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 .
NOTA: Si tiene instalado Deepspeed, es posible que se detecte pero no funcione correctamente, provocando errores. Intente instalar el kit de herramientas CUDA para ver si eso resuelve el problema. Si eso no soluciona el problema, agregue --no-deepspeed
y no se utilizará. También en ese caso, abre un problema con tus datos y lo investigaremos.
Ejecutar epub2tts en WSL2 con Ubuntu 22 es el enfoque más sencillo, pero estos pasos deberían funcionar para ejecutarlo directamente en Windows.
Instale las herramientas de compilación de Microsoft C++. Descargue el instalador desde https://visualstudio.microsoft.com/visual-cpp-build-tools/ luego ejecute el archivo descargado vs_BuildTools.exe
y seleccione la casilla de verificación "Herramientas de compilación C++" dejando todas las opciones en su valor predeterminado. Nota: Esto requerirá aproximadamente 7 GB de espacio en la unidad C.
Instale espeak-ng desde https://github.com/espeak-ng/espeak-ng/releases/latest
instalar chocolate
Instale ffmpeg con el comando choco install ffmpeg
, asegúrese de estar en una sesión elevada de PowerShell.
Instale Python 3.11 con el comando choco install python311
Instale git con el comando choco install git
.
Decide dónde quieres que viva tu proyecto epub2tts, los documentos son un lugar común. Una vez que haya encontrado un directorio con el que esté satisfecho, clone el proyecto con git clone https://github.com/aedocw/epub2tts
y cd epub2tts para estar ahora en su directorio de trabajo.
Probablemente hay algunas maneras diferentes de llegar aquí; yo personalmente opté por un venv para mantener todo organizado. Crea un venv con el comando python -m venv .venv
Active venv, en Windows el comando es ligeramente diferente a medida que ejecuta .venvscriptsactivate
Instale epub2tts junto con los requisitos con los comandos pip install coqui-tts --only-binary spacy && pip install .
Si todo va bien, debería poder llamar a epub2tts desde su venv y actualizarlo desde este directorio en el futuro. Para actualizar, use git pull
y luego pip install . --upgrade
Algunos errores que puedes encontrar
pip install lxml
para instalar la última versión manualmente y luego vuelva a ejecutar pip install .
python -c "import nltk"
y luego python -m nltk.downloader punkt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
--no-deepspeed
y no se utilizará.NOTA: La imagen de Docker no se ha actualizado ni probado recientemente; es posible que esté funcionando pero no esté actualizada.
Los modelos de voz se guardarán localmente en ~/.local/share/tts
El uso de Docker no utiliza GPU de manera confiable. Si alguien quiere trabajar para mejorar esto, sus relaciones públicas serán bienvenidas.
Para Linux y 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'
Para Windows : Requisitos previos:
#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
Colaboradores
¡Las contribuciones, los problemas y las solicitudes de funciones son bienvenidos!
No dude en consultar la página de problemas o la página de discusiones.
¡Dale un ️ si este proyecto te ayudó!