Зачем вообще связываться с open-source TTS для аудиокниг?
Потому что платные сервисы съедают бюджет. Потому что хочется контролировать данные. Потому что нужен голос, который не звучит как робот из 90-х. А еще потому, что f5-tts - модель, которую все хвалят - имеет лицензию, которая не позволяет использовать ее для коммерческих аудиокниг. Вот и весь ответ.
Лицензия f5-tts - не шутка. Если планируете продавать аудиокниги или монетизировать контент - забудьте про эту модель. Иначе получите юридические проблемы.
Что на самом деле нужно для хорошей аудиокниги?
Не просто преобразовать текст в речь. Нужно:
- Естественные паузы между абзацами (да, нейросети умеют дышать)
- Корректное ударение в русских словах (попробуйте заставить TTS правильно сказать "звонит")
- Способность читать часами без сбоев (представьте, модель падает на 50-й странице)
- Поддержку SSML для расстановки акцентов (это как маркер для выделения важных фраз)
- Реальное клонирование голоса, а не пародию (чтобы ваш голос звучал как ваш, а не как ваш пьяный двойник)
Open-source модели: кто есть кто на ринге TTS
Забудьте про старые движки вроде Festival или eSpeak. Сейчас время нейросетей. Вот что действительно работает в 2025:
| Модель | Языки | Клонирование | Требования VRAM | Лицензия |
|---|---|---|---|---|
| Coqui TTS | Мультиязычная, русский есть | Есть (VITS) | от 4 ГБ | MPL-2.0 |
| XTTS-v2 | 13 языков, русский отличный | Всего 3 секунды аудио | от 6 ГБ | CC BY-NC 4.0 |
| Bark (Sunо) | Мультиязычная | Ограниченное | от 8 ГБ | MIT |
| StyleTTS 2 | Английский (русский через адаптацию) | Требует тонкой настройки | от 8 ГБ | MIT |
| VALL-E X | Мультиязычная | Сильное (но требует много данных) | от 12 ГБ | MIT |
1 Coqui TTS: рабочий вариант для длинных текстов
Coqui - не самая современная модель, но стабильная. Подходит для аудиокниг потому, что не падает на длинных текстах. Есть поддержка русского через модель Glow-TTS. Клонирование голоса через VITS работает, но требует минут 5-10 аудио для обучения.
# Установка Coqui TTS
pip install TTS
# Синтез русской речи
python -c "from TTS.api import TTS; tts = TTS('tts_models/ru/glow_tts', gpu=True); tts.tts_to_file('Привет мир', file_path='output.wav')"
# Клонирование голоса (требует предварительного обучения)
tts = TTS(model_name='tts_models/multilingual/multi-dataset/your_tts', progress_bar=False, gpu=True)
tts.tts_to_file(text='Текст для озвучки', speaker_wav='ваш_голос.wav', language='ru', file_path='output.wav')
Ваш_голос.wav должен быть чистым, без фонового шума. Идеально - запись в тихой комнате с хорошим микрофоном. 5-10 минут моно речи достаточно.
2 XTTS-v2: король быстрого клонирования
Эта модель - ответ на вопрос "как склонировать голос за 3 секунды". Буквально. Даете образец голоса - получаете синтез. Русский язык поддерживается отлично. Но лицензия CC BY-NC 4.0 означает: не для коммерции. Для личных проектов - идеально.
from TTS.api import TTS
# Загрузка XTTS-v2
model_name = "tts_models/multilingual/multi-dataset/xtts_v2"
tts = TTS(model_name, gpu=True)
# Всего 3 секунды аудио для клонирования!
tts.tts_to_file(
text="Это текст, который будет озвучен вашим голосом",
speaker_wav="образец_голоса_3сек.wav",
language="ru",
file_path="результат.wav"
)
3 Bark: когда нужны эмоции и звуковые эффекты
Bark - особенная модель. Она не просто говорит, она может смеяться, вздыхать, делать паузы. Для художественной литературы с диалогами - то, что нужно. Но есть нюанс: иногда "переигрывает" с эмоциями. И требует много видеопамяти.
import torch
import numpy as np
from transformers import AutoProcessor, BarkModel
processor = AutoProcessor.from_pretrained("suno/bark-small")
model = BarkModel.from_pretrained("suno/bark-small").to("cuda")
# Генерация с эмоцией
inputs = processor("Привет! [смеется] Как дела?", voice_preset="ru_speaker_6")
with torch.no_grad():
audio_array = model.generate(**inputs.to("cuda"))
audio_array = audio_array.cpu().numpy().squeeze()
# Сохранение
from scipy.io.wavfile import write as write_wav
write_wav("bark_output.wav", 24000, audio_array)
А что с f5-tts? Почему все ее хотят, но не могут использовать
f5-tts - модель, которая звучит почти как человек. Серьезно. Но ее лицензия (f5-tts License) запрещает коммерческое использование для аудиокниг. Можно использовать для исследований, демо, но не для продажи контента. Если вы все равно решили рискнуть - знайте, что модель требует 16 ГБ VRAM для комфортной работы.
Альтернатива f5-tts - VALL-E X с открытой лицензией MIT. Качество чуть хуже, но юридических проблем ноль.
Конвейер для аудиокниг: от PDF до готового аудио
Сам синтез - только часть работы. Нужно извлечь текст из PDF, разбить на главы, обработать спецсимволы, потом склеить аудио. Вот рабочий пайплайн:
# Псевдокод полного конвейера
import pdfplumber # для извлечения текста из PDF
from TTS.api import TTS
import soundfile as sf
# 1. Извлечение текста
with pdfplumber.open("книга.pdf") as pdf:
full_text = ""
for page in pdf.pages:
full_text += page.extract_text() + "\n\n"
# 2. Очистка текста (удаление переносов, коррекция)
cleaned_text = clean_text(full_text) # ваша функция очистки
# 3. Разбиение на куски по 500 символов (чтобы не перегружать модель)
chunks = split_into_chunks(cleaned_text, max_length=500)
# 4. Инициализация TTS модели
tts = TTS('tts_models/ru/glow_tts', gpu=True)
# 5. Синтез каждого куска и сохранение
audio_chunks = []
for i, chunk in enumerate(chunks):
output_path = f"chunk_{i:04d}.wav"
tts.tts_to_file(chunk, file_path=output_path)
audio_chunks.append(output_path)
# 6. Склейка всех кусков в одну аудиокнигу
concat_audio(audio_chunks, "audiobook_final.wav")
Железо: на чем это все запускать
RTX 3060 12GB - минималка для большинства моделей. RTX 4090 - комфортно. Но есть хак: использовать квантование. Модели в 4-битном формате работают в 2 раза быстрее и требуют меньше памяти.
# Пример квантования модели для экономии памяти
from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor, pipeline
import torch
# Загрузка с квантованием (INT4)
model_id = "coqui/xtts-v2"
model = AutoModelForSpeechSeq2Seq.from_pretrained(
model_id,
torch_dtype=torch.float16,
low_cpu_mem_usage=True,
use_safetensors=True,
load_in_4bit=True # вот оно!
)
Квантование может ухудшить качество голоса на 5-10%. Для аудиокниг это часто приемлемо. Тестируйте.
Ошибки, которые все совершают (и вы совершите)
- Использовать сырой текст из PDF - там остаются переносы слов, сноски, номера страниц. Очищайте.
- Забывать про SSML разметку - без нее все будет монотонно. Расставляйте паузы, акценты.
- Экономить на образце для клонирования - 10 секунд записи с шумом дадут ужасный результат.
- Не тестировать на длинных текстах - модель может работать отлично на абзаце и сбоить на странице.
- Игнорировать лицензии - f5-tts не для продажи. XTTS-v2 тоже. Ищите MIT или Apache 2.0.
Вопросы, которые вы хотели задать, но стеснялись
Можно ли использовать эти модели для озвучки YouTube видео?
Можно. Но если монетизируете канал - смотрите лицензии. Coqui TTS с лицензией MPL-2.0 позволяет коммерческое использование. Bark (MIT) - тоже. XTTS-v2 (CC BY-NC) - нет.
Сколько времени уйдет на озвучку книги в 300 страниц?
На RTX 4090: примерно 6-8 часов реального времени. Плюс 2-3 часа на подготовку текста. Плюс 1-2 часа на склейку и постобработку. Итого: рабочий день.
Почему русский голос иногда звучит с акцентом?
Потому что модели часто обучают на мультиязычных данных. Русские фонемы смешиваются с английскими. Решение: искать модели, обученные specifically на русском. Или дообучать свою.
Есть ли готовые решения для конвертации PDF в аудиокнигу?
Есть, но все платные. Open-source альтернатив с графическим интерфейсом почти нет. Придется собирать пайплайн самому, как показано выше.
Что будет через год?
Модели станут меньше и качественнее. Квантование в 2 бита позволит запускать TTS на смартфонах. Появятся open-source аналоги f5-tts с нормальной лицензией. А пока - выбирайте между Coqui для стабильности, XTTS-v2 для быстрого клонирования, и Bark для эмоций. И не нарушайте лицензии. Потому что нейросети - это круто, но юристы - страшнее.