
Сейчас нейронки — это не хайп, а мейнстрим. На сколько сильно бы мы не обожглись на них в прошлых годах, к концу 2025го топовые модели типа Gemini, GPT, Opus показывают достойные результаты при условии правильного формирования контекста. Используя любую прослойку между облаком и пользователем, можно голосом в вольном стиле отдавать нейронке даже нетривиальные задачи, которые она автономно решит и пошлет сигнал к действию тому или иному девайсу. Без сервера, полагаясь на облака, тратя пару долларов в месяц на API.
Если ещё недавно ESP32 ассоциировался в лучшем случае с реле, светодиодами и датчиками, то сегодня этот пятидолларовый микроконтроллер вполне может превратиться в такую прослойку.
Рассмотрим пример — ESP32 обвешена цифровым микрофоном, внешней SD картой памяти и RGB светодиодами . Человек говорит в повествовательном стиле, девайс реагирует исполнением его команды ( в предустановленных рамках) включая нужный свет.
Под капотом ESP32 записывает голос пользователя через I2S‑микрофон и сохраняет его во флеш‑память или на SD‑карту. Это принципиальный момент: аудио очень быстро съедает оперативную память, и попытка держать его в RAM с большой вероятностью обрекает на хождение по минному полю. Поэтому пишем голос на флешку, что хоть и даст небольшую задержку, но обеспечивает надежный workflow. Дальше сохранённый аудиофайл отправляется по HTTPS в LLM — чаще всего это Gemini или OpenAI. За подробностями имплементации можно заглянуть в гайд от Google.
Как это работает.
Промпт к LLM состоит из аудио войса и системного промпта, содержащего в себе набор инструментов, которые можно вызывать в ответе. Распознав голосовую команду, нейронка принимает решение ( основываясь исключительно на информации в голосовом запросе), нужно ли ей вызвать какой либо инструмент, и с какими параметрами. В ответе нейронка формирует структурированный JSON результат. Т.е. в прошивке мы описываем набор доступных действий устройства, а нейросеть сама выбирает, что именно нужно вызвать, и возвращает JSON с параметрами. Этот механизм называется Function Calling и именно он превращает голосовое управление из игрушки в инженерно аккуратное решение.
В итоге всё, чем занимается ESP32 это отправка сырого аудио на сервер и выполнение одного из предустановленных действий согласно полученному от нейронки JSON ответу.
С точки зрения прошивки это выглядит несколько скучно — зато в реальной жизни ощущается как магия. Можно сказать «Что‑то темно», и включится свет. «Сделай поуютнее» — и RGB‑лента перейдёт в тёплый режим, "Смотрим кино" и свет убавится до минимума. Без жёстких фраз, без бесконечных if‑else, без боли.
Ничего не мешает нам реализовать взаимодействие такик ESPшек путем добавления в список инструментов GET запрос на соседнюю еспху с командой сделать что то. И вот уже оживает инфраструктура умного безголового дома
В экосистеме ардуинщиков ребята уже пилят библиотеки для связи с разными провайдерами, чтобы не быть привязанным к одному поставщику "мозгов".
Подводные камни.
Во‑первых, задержка. Классическая схема "записали -- отправили -- дождались ответа" вполне рабочая, но имеет пару секунд задержки. Чтобы устройство реагировало быстрее, звук к нейронкам транслируют потоково по WebSocket, не дожидаясь окончания записи. Это заметно ускоряет отклик, но требует дополнительного сервера между ESP32 и LLM.
Во‑вторых, HTTPS. Работа с LLM почти всегда означает WiFiClientSecure, а он на ESP32 довольно тяжёлый. Иногда бывают подвисания, особенно при долгих соединениях. Принято лечить аккуратной работой с тайм‑аутами, закр��тием соединений и повторным подключением, либо периодической программной перезагрузкой устройства. Не критично, но лучше быть готовым.
В сухом остатке картина получается довольно впечатляющая. ESP32 за пять долларов уже может быть умной голосовой железкой, которая обладает юзерфрендли голосвым UI.
Главный камень преткновения сейчас это wake‑word: мы не можем сказать "Алиса" или "джарвис" так же комфортно, как на яндекс станции, поэтому встает вопрос как будить устройство к прослушиванию. Существующие local wake-word решения для ESP32 есть, но распознают паршивенько. Зато есть простой и неожиданно надёжный вариант — активация по двойному хлопку в ладоши. Для такого уровня DIY поделок это может оказаться золотой пулей.
Если тема интересна, могу в следующей статье написать мануал как собрать ночник с голосовым управлением и отправкой сообщения в телеграм своей любимой.
