Зачем платить за синтез, если можно собрать свой
Представьте: у вас есть полка цифровых книг в формате EPUB. Вы хотите их слушать, а не читать. Сервисы вроде Audible берут деньги. ElevenLabs - тоже. Даже если они бесплатны, ваши книги улетают в чужое облако. Звучит знакомо? Именно эту проблему решает проект локального EPUB-конвертера с модульной архитектурой.
Это не просто скрипт на коленке. Это целая система, которая умеет парсить EPUB, чистить текст, разбивать на главы, а затем кормить этот текст разным TTS-движкам - на вашем же железе. Никаких API-ключей, никаких ограничений по длине. Только ваш компьютер, ваша видеокарта и полная тишина (в смысле, приватность).
Готовьтесь к долгой обработке. 300-страничная книга на XTTS с хорошим качеством может конвертироваться 6-8 часов даже на RTX 4070. Это плата за автономность.
Что за зверь такой - модульный TTS?
Вместо того чтобы привязываться к одной нейросетке, авторы проекта сделали шлюз. Как USB-хаб для синтеза речи. Подключил один движок - получил один результат. Подключил другой - голос и скорость изменились. В теории можно даже переключаться на лету между главами.
| Движок | Что умеет | Сколько жрет VRAM | Качество |
|---|---|---|---|
| XTTS | Клонирование голоса по образцу, мультиязычность | ~4-6 ГБ | Очень высокое, почти человеческое |
| GPT-SoVITS | Сверхбыстрое клонирование с минимальными данными | ~2-4 ГБ | Хорошее, но иногда артефакты |
| Kokoro | Быстрый синтез, много голосов из коробки | ~2 ГБ | Среднее, но стабильное |
XTTS - это, конечно, звезда коллекции. Модель от Coqui AI (теперь отделившейся) умеет клонировать голос по 10-секундной аудиозаписи и поддерживает кучу языков. Но она и самая прожорливая. Если у вас слабая видеокарта, присмотритесь к Pocket TTS - она легкая, но в этот конвертер ее пока не засунешь. Нужно допиливать.
Архитектура: не просто скрипт, а конвейер
Вот как все работает изнутри:
- EPUB файл загружается и распаковывается. Извлекается чистый текст, метаданные (автор, название), оглавление.
- Текст проходит через очистку: удаляются сноски, колонтитулы, реклама. Иногда это работает криво - готовьтесь к ручной правке.
- Контент разбивается на логические куски: предисловие, главы, эпилог. Каждый кусок - отдельный MP3 файл в итоге.
- Запускается выбранный TTS-движок. Текст подается порциями, чтобы не перегрузить память.
- Аудиодорожки склеиваются, добавляются метатеги (ID3), создается плейлист M3U.
Интеграция с Ollama - зачем это нужно?
А вот это интересно. Помимо прямого синтеза, проект умеет подружиться с Ollama - локальным раннером для LLM-моделей. Зачем? Две причины.
Первая: предобработка текста. Можно попросить локальную Mistral или Llama упростить сложные предложения, убрать старомодные обороты, сделать текст более "устным". Особенно актуально для классической литературы.
Вторая: генерация описаний глав. Чтобы в плеере вместо "Глава 1" отображалось "В которой Бильбо Бэггинс встречает Гэндальфа". Мелочь, а приятно.
Если вы уже тренировали LLM на своих EPUB, то эта фишка покажется вам особенно полезной.
С чем борется этот проект (и не всегда побеждает)
- Форматирование EPUB. Каждый автор верстает книги как бог на душу положит. Иногда текст разбит на 100500 HTML-файлов, иногда все в одном. Парсер справляется с 80% случаев. На остальные 20% нужно тратить нервы.
- Память видеокарты. XTTS с параметрами по умолчанию требует 6 ГБ VRAM. На карте с 8 ГБ это оставляет мало места для буферов. Придется снижать качество или использовать удаленный GPU через Docker.
- Скорость. Реальность такова, что синтез хорошей речи - ресурсоемкая задача. Книга в 10 часов аудио потребует 15-20 часов обработки. Ставьте на ночь.
Кому это реально нужно?
Не всем. Если вам нужно конвертировать одну книгу раз в полгода, проще воспользоваться онлайн-сервисом. Этот проект для тех, кто:
- Конвертирует десятки книг (например, для личной библиотеки или незрячих родственников).
- Требует полной приватности (книги по юриспруденции, медицине, личные дневники).
- Хочет уникальные голоса, которых нет в стандартных TTS. Записал голос друга - получил аудиокнигу в его исполнении.
- Экспериментирует с качеством синтеза, сравнивает движки. Для этого есть наше сравнение open-source моделей TTS.
Проект активно развивается. Уже в планах - поддержка Coppernic TTS, интеграция с RVC для изменения тембра готовой аудиокниги и даже простенький веб-интерфейс. Заглядывайте в репозиторий раз в месяц.
Альтернативы? Есть, но с подвохом
Конечно, можно взять Sonya TTS и написать свой скрипт для EPUB. Или использовать Supertonic 2 TTS для скорости. Но тогда вы потеряете модульность и управление VRAM.
Есть готовые программы вроде Balabolka, но они используют старые движки вроде SAPI5. Звучит как робот из 2000-х.
Главное преимущество этого конвертера - он заточен именно под книги. Учитывает структуру, главы, метаданные. Это не универсальный TTS, а специализированный инструмент.
Стоит ли заморачиваться?
Если у вас есть RTX 3060 (12 ГБ) или лучше, и вы фанат аудиокниг - однозначно да. Первая настройка займет часа три. Вы будете ругаться с зависимостями Python, бороться с версиями PyTorch и удивляться, почему модель не видит вашу видеокарту.
Но когда вы впервые услышите, как ваш собственный голос (склонированный XTTS) читает "Мастера и Маргариту" - это того стоит. Это магия, которую вы создали сами. Без подписок, без ограничений, без отправки данных кому-либо.
Начните с короткой книги. Настройте конфиг под свое железо. И не ждите чуда - даже лучшие локальные TTS иногда ошибаются с ударениями и интонацией. Но они учатся. И вы - вместе с ними.