TTS на VPS: озвучка текста нейросетью
Синтез речи давно перестал звучать как робот. Свой TTS на VPS озвучивает статьи, книги и уведомления бота живым голосом — без подписок, лимитов на символы и отправки текстов в облако.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Какой движок выбрать
Для CPU-серверов есть два практичных варианта. Piper — быстрый, легкий, дает разборчивую речь и работает почти в реальном времени даже без GPU. Coqui TTS — тяжелее, но гибче и с более естественными голосами.
Разница проще, чем кажется. Piper — это готовый бинарник с предобученными голосами: подал текст, получил wav, скорость близка к мгновенной. Coqui — это фреймворк с более выразительной просодией и умением клонировать голос по образцу, но за это платишь памятью и временем расчета. Выбор зависит от того, что важнее: пропускная способность или максимальная естественность.
- Piper — быстрый синтез, готовые голоса, идеален для CPU и ботов
- Coqui TTS — качественнее, но требовательнее к ресурсам
Начнем с Piper как самого дружелюбного к VPS без видеокарты.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для TTSУстановка Piper
Piper распространяется готовым бинарником — не нужно собирать зависимости:
apt update && apt install -y wget
mkdir ~/piper && cd ~/piper
wget https://github.com/rhasspy/piper/releases/latest/download/piper_linux_x86_64.tar.gz
tar -xzf piper_linux_x86_64.tar.gz
Скачиваем русский голос (модель .onnx и конфиг .json):
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/ru/ru_RU/dmitri/medium/ru_RU-dmitri-medium.onnx
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/ru/ru_RU/dmitri/medium/ru_RU-dmitri-medium.onnx.json
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Первая озвучка
Подаем текст в piper и получаем wav-файл:
echo "Привет, это синтез речи на моем сервере." | \
./piper/piper --model ru_RU-dmitri-medium.onnx --output_file out.wav
Piper читает текст из stdin, что удобно для пайплайнов: можно скормить ему вывод другой программы или содержимое файла. Синтез минуты речи на AMD EPYC у MAATRIX идет быстрее реального времени — сервер не станет узким местом.
Coqui TTS для качества
Если нужен более естественный голос и ты готов на большие ресурсы, ставь Coqui TTS:
python3 -m venv ~/tts-venv
source ~/tts-venv/bin/activate
pip install TTS
Синтез с многоязычной моделью XTTS:
tts --text "Текст для озвучки на русском языке." \
--model_name tts_models/multilingual/multi-dataset/xtts_v2 \
--language_idx ru --out_path out.wav
XTTS умеет клонировать голос по короткому образцу, но и весит больше, и считается медленнее — под это бери сервер с запасом RAM.
API-сервис озвучки
Оборачиваем Piper в HTTP-эндпоинт на FastAPI:
from fastapi import FastAPI
from fastapi.responses import FileResponse
import subprocess, uuid
app = FastAPI()
@app.post("/say")
def say(text: str):
out = f"/tmp/{uuid.uuid4().hex}.wav"
subprocess.run(
["/root/piper/piper/piper", "--model",
"/root/piper/ru_RU-dmitri-medium.onnx", "--output_file", out],
input=text.encode(), check=True)
return FileResponse(out, media_type="audio/wav")
uvicorn app:app --host 127.0.0.1 --port 8002
Такой эндпоинт превращает сервер в фабрику озвучки: бэкенд сайта шлет текст статьи и получает готовое аудио, Telegram-бот отвечает голосом, а система уведомлений проговаривает события. Поскольку Piper синтезирует быстрее реального времени, один сервер обслуживает поток коротких фраз без очередей.
Автозапуск и частые ошибки
Заверни сервис в systemd, чтобы озвучка была доступна всегда:
[Service]
WorkingDirectory=/root/tts
ExecStart=/root/tts-venv/bin/uvicorn app:app --host 127.0.0.1 --port 8002
Restart=always
- Металлический голос — возьми модель качества high вместо medium.
- Модель не найдена — .onnx и .onnx.json должны лежать рядом.
- Coqui грузится минуту — прогревай модель при старте, а не на первом запросе.
- Обрезается длинный текст — режь на предложения и склеивай wav через ffmpeg.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для TTSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Piper или Coqui — что выбрать?
Piper для скорости и CPU-серверов: быстро, легко, разборчиво. Coqui/XTTS для максимально естественного голоса и клонирования, но нужны ресурсы.
Есть ли русские голоса?
Да. У Piper готовые русские голоса нескольких дикторов, XTTS тоже поддерживает русский через language_idx=ru.
Можно ли озвучивать длинные тексты?
Да, но разбивай на предложения и склеивай результат через ffmpeg — так синтез стабильнее и не упирается в лимиты длины.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.