Локальный TTS без GPU: качественная озвучка текста на Kokoro прямо на процессоре

Ariya Hidayat (сайт ariya.io) описал, как развернуть локальный синтез речи (TTS) на модели Kokoro на своей домашней машине с GTX 1080 Ti, у которой видеокарта целиком занята инференсом локальной LLM, синтез речи при этом работает исключительно на CPU. Kokoro, компактная модель на 82 млн параметров, которая, несмотря на скромный размер, выдаёт естественно звучащую речь на нескольких языках (английском, мандаринском, хинди) и предлагает около 50 разных голосов, в основном англоязычных.
Самый простой способ развернуть сервис, готовый контейнер Kokoro-FastAPI с уже встроенными голосовыми моделями (образ весит около 5 ГБ). Он запускается одной командой: podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu. После запуска доступен простой веб-интерфейс на localhost:8880/web для генерации и прослушивания аудио, а также API, совместимый с OpenAI Speech API, это позволяет подключать Kokoro к программам, уже написанным под OpenAI. Для быстрой проверки автор приводит готовые скрипты на JavaScript и Python из репозитория remotebrowser/speak: после клонирования репозитория и установки переменной TTS_API_BASE_URL=http://127.0.0.1:8880/v1 можно озвучить фразу командой ./speak.js "Good morning! How are you today?" (аналогично для Python). Результат сохраняется в MP3-файл, а при установленном SoX автоматически проигрывается. Голос выбирается переменной TTS_VOICE (например, am_eric), полный список, в файле VOICES.md проекта Kokoro-82M на Hugging Face.
Автор замерил скорость генерации короткого тестового абзаца (про Юпитер) на трёх процессорах: Intel Core i7-4770K (вышел 12 лет назад), 4,7 секунды, Apple M2 Pro, 4,5 секунды, AMD Ryzen 7 8745HS, 1,5 секунды. Вывод автора: если даже старый процессор справляется без проблем, система действительно эффективна.
В качестве альтернативы упомянут сервис Speaches (speaches.ai), тоже контейнеризированный и совместимый с OpenAI API, но требующий отдельной загрузки голосовых весов через API (в отличие от Kokoro-FastAPI, где голоса уже встроены). Зато Speaches включает Whisper, известную модель распознавания речи (STT) от OpenAI, что делает его универсальным решением, если нужны и TTS, и STT сразу. По мнению автора, связка локальной LLM с таким TTS позволяет слушать ответы модели вместо чтения.
Ключевые факты
- Kokoro, модель синтеза речи на 82 млн параметров, поддерживает английский, мандаринский и хинди, предлагает около 50 голосов (в основном англоязычных)
- Работает полностью на CPU: в демонстрации автора GPU целиком занята локальной LLM, а озвучка идёт на процессоре
- Разворачивается одной командой через контейнер Kokoro-FastAPI (~5 ГБ, голоса встроены):
podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu - Совместим с OpenAI Speech API; есть готовые скрипты на JS и Python в репозитории remotebrowser/speak для быстрого теста
- Замеры скорости на коротком абзаце: Intel i7-4770K (12 лет), 4,7 сек, Apple M2 Pro, 4,5 сек, AMD Ryzen 7 8745HS, 1,5 сек
Почему это важно
Ещё недавно качественный синтез речи требовал либо мощной видеокарты, либо облачного API. Компактная модель Kokoro (82 млн параметров) выдаёт естественную речь на обычном процессоре за считанные секунды, это делает голосовой вывод практичной надстройкой над локальными языковыми моделями даже там, где вся видеокарта уже занята инференсом самой LLM.
Кому это важно
Разработчикам локальных LLM-приложений, которым нужен голосовой вывод без конкуренции за GPU-ресурсы; людям, которые из соображений приватности не хотят отправлять текст во внешние облачные TTS-сервисы; владельцам не самого нового железа, автор специально показывает, что система тянет даже 12-летний процессор.
Как это применить
Поднять готовый контейнер командой podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu (подойдёт и Docker), открыть веб-интерфейс на localhost:8880/web для проверки или использовать OpenAI-совместимый API через скрипты speak.js/speak.py из репозитория remotebrowser/speak, задав TTS_API_BASE_URL и при желании TTS_VOICE. Список доступных голосов, в файле VOICES.md проекта Kokoro-82M на Hugging Face. Если нужен ещё и STT впридачу, стоит посмотреть на альтернативу Speaches с встроенным Whisper.
Можно ли доверять
Это личный опыт автора блога Ariya Hidayat (ariya.io) с конкретными командами, ссылками на используемые репозитории и собственными замерами скорости на трёх процессорах, воспроизводимо технически подкованным читателем, но это личная демонстрация одного человека, а не независимый бенчмарк или официальный релиз.
Риски и подводные камни
Образ Kokoro-FastAPI довольно тяжёлый (~5 ГБ) из-за встроенных голосовых моделей. Большинство из ~50 голосов ориентированы на английский язык, насколько полноценно раскрыта поддержка мандаринского и хинди, из текста не ясно. У альтернативы Speaches голоса не встроены и их нужно докачивать отдельно через API.
«Если даже этот древний процессор справляется без проблем, вы понимаете, что перед вами по-настоящему производительная TTS-система.»
— Ariya Hidayat, автор блога ariya.io