Inflect-Nano-v2 ужали до ESP32
ttsesp32edge-ai
Главный трюк не в модели, а в том, что из нее выкинули
Здесь важная новость простая: участник обсуждения сообщил, что полноценную TTS-модель Inflect-Nano-v2 удалось ужать под маленькую плату ESP32 и получить почти 2× от real-time. На 11 августа 2026 это выглядит не как официальный релиз прошивки, а как очень интересный инженерный кейс из поля.
В карточке модели Hugging Face для owensong/Inflect-Nano-v2 указано, что это complete local English text-to-waveform TTS: 3 966 721 deployable parameters, целевой 24 kHz mono output, VITS-family end-to-end generator. Для микроконтроллера это уже не смешной размер. ESP32 не про роскошь, там каждый лишний блок быстро превращается в боль.
По описанию карточки, внутри есть English phoneme frontend, monotonic alignment, stochastic latent synthesis, residual coupling flow и alias-reduced neural waveform decoder. Еще указаны компактные настройки: 128 latent channels, 72 text hidden channels, 3 encoder layers, 2 heads, 384 feed-forward channels, 4 flow coupling blocks, 192 initial decoder channels и upsampling rates 8, 8, 2, 2.
И вот тут фраза про реверс-инжиниринг важнее, чем сам факт запуска. Автор обсуждения прямо написал, что при разборе выяснилось: можно много чего выкинуть. Какие именно компоненты удалены, в исходных данных не раскрыто, поэтому честнее не фантазировать про конкретный список слоев.
Но инженерно направление понятно. У такой модели есть акустическая часть, выравнивание, латентная генерация и декодер волны. Если цель узкая, например один английский голос и локальная озвучка коротких фраз, часть общей гибкости может быть лишним налогом.
Почему почти 2× real-time на ESP32 цепляет
Почти двукратный запас реального времени на ESP32 меняет разговор: это уже не просто оно еле пропищало, а потенциально пригодный локальный TTS-контур. Для IoT и носимых устройств разница огромная, потому что речь можно генерировать без сервера и без сетевой задержки.
Официальная ONNX-упаковка Inflect-Nano-v2 тоже намекает на удобную точку разреза: duration.onnx отвечает за tokens to aligned acoustic distribution, decode.onnx за acoustic distribution plus seeded noise to waveform. Такой сплит не доказывает готовность к ESP32, но показывает, где модель можно пилить, квантовать или заменять по частям.
Я бы первым делом смотрел не на красивое число параметров, а на память, типы вычислений и стоимость декодера. В TTS часто можно относительно спокойно ужать текстовую часть, но слишком грубая атака на waveform decoder быстро превращает речь в кашу.
Этот кейс хорош именно своей приземленностью. Не очередной огромный генератор в облаке, а маленькая модель, которую начали разбирать отверткой до уровня микроконтроллера. Самый интересный вопрос теперь не запуск, а сколько качества осталось после всей этой хирургии.