epub2tts — это бесплатное приложение Python с открытым исходным кодом, позволяющее легко создавать полнофункциональную аудиокнигу из epub или текстового файла с использованием реалистичного преобразования текста в речь из Coqui AI TTS, OpenAI или MS Edge.
ПРИМЕЧАНИЕ. ДОБАВЛЕНА НОВАЯ ФУНКЦИЯ МУЛЬТИОБРАБОТКИ! Теперь вы можете использовать --threads N
, чтобы указать количество потоков, в которых главы будут обрабатываться параллельно! Если вы используете Edge или OpenAI, вы можете установить потоки для любого количества глав, и все они могут обрабатываться одновременно. При использовании TTS/XTTS вам придется поэкспериментировать, чтобы увидеть, с чем может справиться ваша система.
ПРИМЕЧАНИЕ. Проверьте epub2tts-edge, чтобы найти ОЧЕНЬ быструю и легкую альтернативу, которая работает только с MS Edge. Эта версия читает несколько предложений параллельно и работает намного быстрее!
epub2tts mybook.epub --export txt
# Part 1
и т. д. на нужные названия глав и удалив вступительную часть, например оглавление и все остальное, что вы не хотите читать. Примечание. Первые две строки могут быть «Название:» и «Автор:», чтобы использовать их в метаданных аудиокниги. ТАКЖЕ ПРИМЕЧАНИЕ. После имени автора/названия копия книги ДОЛЖНА начинаться с главы или раздела, отмеченного линией с решеткой в начале (например, # Introduction
).% <speaker>
после названия главы, например # Chapter One % en-US-AvaMultilingualNeural
. Пример см. в файле multi-speaker-sample-edge.txt
. Примечание. Работает только с многодинамиковым механизмом Coqui TTS (по умолчанию) или --engine edge
. Использование модели VITS, все настройки по умолчанию, графический процессор не требуется:
epub2tts mybook.epub
(Чтобы изменить динамик (например, p307 на хороший мужской голос с Coqui TTS), добавьте: --speaker p307
) Использует Microsoft Edge TTS в облаке, БЕСПЛАТНО, требует минимального использования ЦП и работает довольно быстро (например, 100 минут для 7-часовой книги). Множество голосов и языков на выбор, качество действительно хорошее (для примера послушайте sample-en-US-AvaNeural-edge.m4b
).
edge-tts --list-voices
, динамик по умолчанию — en-US-AndrewNeural
, если --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
определите, с какой части начинать и заканчивать, чтобы можно было пропустить оглавление и т. д.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 также следует устанавливать через доморощенный вариант.
Модели голоса будут сохранены локально в ~/.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, вам также следует установить набор инструментов CUDA, чтобы использовать deepspeed.
Модели голоса будут сохранены локально в ~/.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
, и он не будет использоваться. Также в этом случае откройте проблему с вашими данными, и мы ее рассмотрим.
Запуск epub2tts в WSL2 с Ubuntu 22 — самый простой подход, но эти шаги должны работать и при запуске непосредственно в Windows.
Установите инструменты сборки Microsoft C++. Загрузите установщик с https://visualstudio.microsoft.com/visual-cpp-build-tools/, затем запустите загруженный файл vs_BuildTools.exe
и установите флажок «Инструменты сборки C++», оставив для всех параметров значения по умолчанию. Примечание. Для этого потребуется около 7 ГБ места на диске C.
Установите espeak-ng с https://github.com/espeak-ng/espeak-ng/releases/latest.
Установить шоколад
Установите ffmpeg с помощью команды choco install ffmpeg
, убедитесь, что вы находитесь в сеансе PowerShell с повышенными правами.
Установите Python 3.11 с помощью команды choco install python311
Установите git с помощью команды choco install git
.
Решите, где вы хотите разместить свой проект epub2tts, документы — это обычное место. Найдя устраивающий вас каталог, клонируйте проект с помощью git clone https://github.com/aedocw/epub2tts
и cd epub2tts, и теперь вы находитесь в своем рабочем каталоге.
Вероятно, есть несколько разных способов добраться сюда, лично я выбрал венв, чтобы все было организовано. Создайте venv с помощью команды python -m venv .venv
Активируйте venv, в Windows команда немного отличается от ввода .venvscriptsactivate
Установите epub2tts вместе с требованиями командами pip install coqui-tts --only-binary spacy && pip install .
Если все пойдет хорошо, вы сможете вызывать epub2tts из вашего venv и обновлять его из этого каталога в дальнейшем. Для обновления используйте 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 не обеспечивает надежного использования графического процессора. Если кто-то захочет поработать над этим, ваш пиар будет очень кстати!
Для 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
? Кристофер Эдо
Авторы
Вклады, проблемы и запросы функций приветствуются!
Не стесняйтесь проверить страницу вопросов или страницу обсуждений.
Ставьте ️, если этот проект вам помог!