Как запустить ChatTTS локально и перестать платить за облачные синтезаторы речи

22 июн 2026
7,661
918
43
3 месяца

Вчера я полчаса пытался заставить одну известную нейронку прочитать текст так, чтобы она не звучала как робот из восьмидесятых. В итоге плюнул и пошел искать, что там выложили на GitHub. Наткнулся на ChatTTS-ui. Это графическая оболочка для модели ChatTTS, которая умеет имитировать живую человеческую речь с паузами, смешками и вздохами.

Сама модель ChatTTS — штука крутая, но запускать её через голый Python-скрипт то еще удовольствие. Проект jianchang512/ChatTTS-ui решает эту проблему, давая нам нормальный веб-интерфейс и, что важнее, готовый API.

Что умеет эта штука

Главная фишка здесь не в простом чтении текста, а в управлении эмоциями. Модель специально обучали на разговорной речи. Она понимает теги вроде [laugh], [uv_break] или [lbreak]. Если вставить их в текст, голос будет звучать так, будто человек реально задумался или усмехнулся.

Интерфейс поддерживает смешанный текст на китайском и английском. Для нас это значит, что англицизмы в техническом тексте не превратятся в невнятную кашу.

Проект закрывает сразу несколько «хотелок»:

Реклама
  • Работает полностью локально. Ваши данные не улетают на чужие сервера.
  • Есть готовый экзешник для Windows. Не нужно возиться с зависимостями, если просто хочется потыкать.
  • Поддерживает GPU-ускорение через CUDA. Если у вас видеокарта от NVIDIA с объемом памяти от 4 ГБ, синтез будет летать.
  • Выдает API-эндпоинт. Можно прикрутить озвучку к своему боту или приложению за пять минут.

Как это завести у себя

Автор предусмотрел несколько путей. Самый ленивый — скачать архив из разделов Releases, распаковать и запустить app.exe. Но мы же разработчики, нам подавай Docker или виртуальное окружение.

Для тех, кто предпочитает Docker, всё стандартно:

git clone https://github.com/jianchang512/ChatTTS-ui.git chat-tts-ui
cd chat-tts-ui
docker compose -f docker-compose.gpu.yaml up -d 

Если видеокарты нет или она слабенькая, меняем файл на docker-compose.cpu.yaml. После старта интерфейс будет доступен по адресу http://127.0.0.1:9966.

Интересный момент с моделями: при первом запуске скрипт ломится на HuggingFace. Если с доступом к нему проблемы, он автоматически переключается на зеркало ModelScope. Это избавляет от танцев с бубном вокруг прокси при скачивании весов.

API и интеграция

Для меня самой полезной частью оказался API. Он максимально простой. Делаем POST-запрос на /tts и получаем путь к сгенерированному wav-файлу.

Пример на Python выглядит так:

import requests

res = requests.post('http://127.0.0.1:9966/tts', data={
  "text": "Привет! Посмотри, как я умею озвучивать текст [laugh_0]",
  "voice": "2222",
  "temperature": 0.3
})
print(res.json())

Параметр voice — это сид (seed) для голоса. Можно перебирать цифры, пока не найдете тот тембр, который вам нравится. В последних версиях добавили поддержку фиксированных тембров через файлы .pt или .csv, которые можно закинуть в папку speaker.

Где это реально пригодится

Я вижу несколько сценариев. Во-первых, озвучка роликов для YouTube или локальных презентаций. Голос получается живым, и это не режет слух. Во-вторых, автоматизация умного дома. Вместо стандартных системных голосов можно сделать что-то более приятное.

Кстати, проект отлично интегрируется с pyVideoTrans — это софт для перевода видео. Если вы занимаетесь локализацией контента, связка этих инструментов сэкономит кучу времени.

Нюансы и ограничения

Не всё так идеально. Если у вас меньше 4 ГБ видеопамяти, система принудительно уйдет на CPU. На процессоре синтез работает ощутимо медленнее, так что длинные тексты придется подождать.

Еще один момент — стабильность голоса. Иногда один и тот же сид на разных устройствах может выдать немного разную интонацию. Это особенность самой модели ChatTTS, а не интерфейса.

Стоит ли пробовать? Определенно, если вам нужен качественный TTS без подписок и облаков. Проект активно пилится, звезды на GitHub растут, а установка занимает от силы пять минут. Можно просто держать его в Docker-контейнере и дергать по API, когда нужно быстро что-то озвучить.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.