epub2tts é um aplicativo python gratuito e de código aberto para criar facilmente um audiolivro completo a partir de um epub ou arquivo de texto usando conversão de texto em fala realista de Coqui AI TTS, OpenAI ou MS Edge.
NOTA: NOVO RECURSO DE MULTIPROCESSAMENTO ADICIONADO! Agora você pode usar --threads N
para especificar o número de threads a serem executadas onde os capítulos serão processados em paralelo! Se estiver usando Edge ou OpenAI, você pode definir tópicos para quantos capítulos tiver e todos eles podem ser processados ao mesmo tempo. Ao usar TTS/XTTS, você precisará fazer algumas experiências para ver o que seu sistema pode suportar.
NOTA: Confira epub2tts-edge para uma alternativa MUITO rápida e leve que só funciona com o MS Edge. Essa versão lê várias frases em paralelo e é muito mais rápida!
epub2tts mybook.epub --export txt
# Part 1
etc pelos nomes dos capítulos desejados e removendo assuntos iniciais, como índice e qualquer outra coisa que você não queira ler. Observação: as duas primeiras linhas podem ser Título: e Autor: para usar isso nos metadados do audiolivro. NOTA TAMBÉM Após Autor/Título, a cópia do livro DEVE começar com um capítulo ou seção marcada por uma linha com uma marca de hash no início (como # Introduction
).% <speaker>
após o nome do capítulo, por exemplo # Chapter One % en-US-AvaMultilingualNeural
. Veja o arquivo multi-speaker-sample-edge.txt
para ver um exemplo. Nota: Funciona apenas com mecanismo de vários alto-falantes Coqui TTS (padrão) ou --engine edge
. Usando o modelo VITS, todos os padrões, sem necessidade de GPU:
epub2tts mybook.epub
(Para mudar o alto-falante (ex p307 para uma boa voz masculina com Coqui TTS), adicione: --speaker p307
) Usa o Microsoft Edge TTS na nuvem, GRATUITO, requer apenas o mínimo de CPU e é bastante rápido (100 minutos para uma reserva de 7 horas, por exemplo). Muitas vozes e idiomas para escolher, e a qualidade é muito boa (ouça sample-en-US-AvaNeural-edge.m4b
por exemplo).
edge-tts --list-voices
, o alto-falante padrão é en-US-AndrewNeural
se --speaker
não for especificado.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 em qual parte começar e terminar para poder pular o 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 opção insere %P%
em cada quebra de parágrafo. Então, ao criar áudio com --engine edge
, sempre que %P%
for encontrado na cópia, uma pausa de 1,2 segundo será inserida.Agradecemos antecipadamente por relatar quaisquer bugs/problemas que você encontrar! Se você estiver tendo problemas, primeiro pesquise os problemas existentes para ver se alguém já encontrou algo semelhante anteriormente.
Se você encontrou algo novo, abra um problema e certifique-se de incluir:
--debug --minratio 0
adicionado, para obter mais informações--threads N
para multiprocessamento e suporte para arquivos NCX que melhora a detecção de como o texto é separado em um epub.--skip-cleanup
para ignorar a substituição de caracteres especiais por ","Os tempos de inferência típicos para xtts_v2 são em média de 4 blocos de processamento (cerca de 4 sentenças cada) que podem ser esperados:
| 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 |
A versão necessária do Python é 3.11.
Esta instalação requer Python <3.12 e Homebrew (eu uso o homebrew para instalar espeak, pyenv e ffmpeg). Por esse bug, o mecab também deve ser instalado via homebrew.
Os modelos de voz serão salvos localmente em ~/.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 instruções são para o Ubuntu 22.04 (20.04 mostrou alguns problemas de dependência), mas devem funcionar (com mods de instalação de pacote apropriados) para praticamente qualquer repositório. Certifique-se de ter ffmpeg
instalado antes de usar. Se você possui uma GPU NVIDIA, você também deve instalar o kit de ferramentas CUDA para usar o deepspeed.
Os modelos de voz serão salvos localmente em ~/.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: Se você tiver o deepspeed instalado, ele poderá ser detectado, mas não funcionar corretamente, causando erros. Tente instalar o kit de ferramentas CUDA para ver se isso resolve o problema. Se isso não resolver o problema, adicione --no-deepspeed
e ele não será usado. Também nesse caso, abra um problema com seus dados e nós analisaremos.
Executar epub2tts em WSL2 com Ubuntu 22 é a abordagem mais fácil, mas essas etapas devem funcionar para execução direta no Windows.
Instale as ferramentas de compilação do Microsoft C++. Baixe o instalador em https://visualstudio.microsoft.com/visual-cpp-build-tools/, execute o arquivo baixado vs_BuildTools.exe
e marque a caixa de seleção "Ferramentas de compilação C++", deixando todas as opções com seus valores padrão. Nota: Isso exigirá cerca de 7 GB de espaço na unidade C.
Instale espeak-ng em https://github.com/espeak-ng/espeak-ng/releases/latest
Instalar chocolate
Instale o ffmpeg com o comando choco install ffmpeg
, certifique-se de estar em uma sessão elevada do PowerShell.
Instale o python 3.11 com o comando choco install python311
Instale o git com o comando choco install git
.
Decida onde você deseja que seu projeto epub2tts fique, documentos são um lugar comum. Depois de encontrar um diretório com o qual esteja satisfeito, clone o projeto com git clone https://github.com/aedocw/epub2tts
e cd epub2tts para que você esteja agora em seu diretório de trabalho.
Provavelmente existem algumas maneiras diferentes de chegar aqui. Eu pessoalmente optei por um local para manter tudo organizado. Crie um venv com o comando python -m venv .venv
Ative o venv, no Windows o comando é um pouco diferente quando você emite .venvscriptsactivate
Instale epub2tts junto com os requisitos com os comandos pip install coqui-tts --only-binary spacy && pip install .
Se tudo correr bem, você poderá chamar epub2tts de dentro do seu venv e atualizá-lo a partir deste diretório daqui para frente. Para atualizar, use git pull
e depois pip install . --upgrade
Alguns erros que você pode encontrar
pip install lxml
para instalar a versão mais recente manualmente e execute novamente pip install .
python -c "import nltk"
e python -m nltk.downloader punkt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
--no-deepspeed
e não será usado.NOTA: A imagem do Docker não foi atualizada ou testada recentemente, pode estar funcionando, mas está desatualizada.
Os modelos de voz serão salvos localmente em ~/.local/share/tts
O uso do Docker não utiliza GPU de maneira confiável. Se alguém quiser trabalhar para melhorar isso, seu PR será muito bem-vindo!
Para Linux e 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 : Pré-requisitos:
#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
? Cristóvão Aedo
Colaboradores
Contribuições, problemas e solicitações de recursos são bem-vindos!
Sinta-se à vontade para verificar a página de problemas ou a página de discussões.
Dê um ️ se esse projeto te ajudou!