Repka-Pi 4 gets local text-to-speech with Piper and FastAPI, without a GPU and with autostart
A local speech synthesizer based on Piper and FastAPI was assembled for Repka-Pi 4. The system works without a GPU, accepts HTTP requests from external clients,
На Repka-Pi 4 показали рабочий сценарий локального синтеза речи с использованием нейросетевого движка Piper. Даже на одноплатнике с 2 ГБ ОЗУ и без GPU плата может озвучивать текст по HTTP, автоматически запускаться при старте системы и обслуживать внешние устройства.
Почему это интересно
История здесь не про очередной облачный API, а про перенос TTS прямо на компактный локальный компьютер. Автор показывает, что современный одноплатник уже тянет не только простые скрипты, но и русскоязычный синтез речи приемлемого качества. Для сценариев, где важны приватность, автономность и работа без интернета, это критично: устройства умного дома, голосовые киоски, игрушки, локальные помощники и учебные стенды могут говорить сами, без отправки текста во внешние сервисы.
Отдельно важен контраст между двумя подходами. Лёгкий eSpeak NG почти не требует ресурсов и запускается сразу, но звучит слишком механически. Piper, напротив, использует нейросетевую модель в формате ONNX и даёт более живой голос даже без графического ускорителя.
Это делает Repka-Pi 4 не просто платой для экспериментов, а базой для реальных интерфейсов, где синтез должен быть понятным и терпимым на слух, а не только формально рабочим.
Из чего состоит решение
Практическая схема собрана из открытых компонентов, которые можно развернуть локально. В качестве базового варианта автор использует eSpeak NG, а для более качественного звука — Piper TTS. Установка Piper идёт через Python-окружение, после чего на плату загружается русскоязычная модель голоса. Дальше синтез можно запускать либо из командной строки, либо напрямую из Python, передавая текст в поток и сразу отправляя аудио на воспроизведение.
«Это голос робота из 80-х» — так в статье описан результат eSpeak NG по сравнению с
Piper. * eSpeak NG — самый лёгкий вариант для плат с жёсткими ограничениями по ресурсам.
- Piper TTS — нейросетевой синтез на базе VITS и ONNX с заметно более естественной речью.
- FastAPI-сервер — HTTP-интерфейс для внешних клиентов, которые отправляют текст на озвучивание.
- Очередь и отдельный поток — механизм, который позволяет не блокировать клиента до конца синтеза. * systemd-сервис — автозапуск TTS после включения питания платы. В статье отдельно разбираются два режима работы Piper: через запись WAV-файла и через потоковый вывод без промежуточного файла. Второй вариант особенно полезен для встраиваемых сценариев, потому что убирает лишние операции с диском и ускоряет путь от текста до звука. Автор также показывает, как использовать aplay и sounddevice, и отмечает, что предупреждения о недоборе аудиобуфера или отсутствии GPU на Repka-Pi 4 не мешают получить пригодный для практики результат.
Как работает сервер Ключевая часть проекта — сервер синтеза речи на базе FastAPI.
Он поднимается на самой Repka-Pi 4, слушает HTTP-запросы и принимает текст через маршрут POST /say. После этого сервер не заставляет клиента ждать, пока фраза будет целиком озвучена. Вместо этого задача кладётся в очередь, а отдельный фоновый поток уже занимается вызовом Piper, сборкой PCM-потока и выводом звука через sounddevice.
Для систем автоматизации это удобнее, чем синхронный вызов, который подвешивает всю логику устройства. Есть и служебный маршрут GET /status: по нему можно проверить, свободен ли сервер, идёт ли сейчас воспроизведение и сколько задач уже стоит в очереди. Модель загружается один раз при старте приложения, поэтому её не нужно инициализировать на каждый запрос заново.
Для постоянной работы предусмотрен unit-файл systemd: он запускает сервис после загрузки системы, включает перезапуск при сбоях и позволяет смотреть логи через journalctl. По описанию автора, задержка до начала озвучивания составляет от одной до нескольких секунд и зависит от длины текста.
Что это значит
Практическая ценность кейса в том, что локальный голосовой интерфейс больше не требует дорогого железа или постоянной связи с облаком. Repka-Pi 4 уже можно использовать в домашних автоматизациях, терминалах, роботах и учебных проектах, а с появлением более мощных плат логично ждать более быстрый офлайн-TTS, связку синтеза с распознаванием речи и полноценные русскоязычные ассистенты, работающие целиком на устройстве. Для русскоязычного DIY-рынка это редкий пример того, как готовый стек можно быстро перенести из статьи в рабочий прототип.