Как стать автором
Обновить

Понимающий робот: голосовой интерфейс на ESP32 и OpenAI

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.4K
Всего голосов 5: ↑5 и ↓0+6
Комментарии13

Комментарии 13

То есть роботом управляете не вы а OpenAI по вашей просбе ? Что если OpenAI задумает поуправлять самостоятельно ? Также без связи интернет робот превращается в тыкву...

Если вам нужен оффлайн и четкое выполнение инструкций (без OpenAI), заходите в голосовой помощник Ирину: https://github.com/janvarev/Irene-Voice-Assistant (900+ звезд на Гитхабе, 3 статьи на Хабре :)

Там все локальное, можно подключать сторонних клиентов (в клиент-серверном варианте). Если взять прошивку из статьи, думаю, и её можно прикрутить, отсылая записанный WAV-файл в Ирину для распознавания и выполнения (но сам я в ESP32 не спец)

Интересно, странно, что не видел до этого. А какие там требования к железу? Боюсь, что для микроконтроллеров не пойдет...

Если в облачном варианте (как у вас), то вообще никаких требований. Ну, разве что надо где-то гонять распознавание звука, обычно это делается локально на VOSK, где-то надо поставить.

Так вообще я знаю, что серверы на Raspberry делали. Клиентом вообще может быть что угодно, ESP32 кто-то делал, но я не в курсе деталей.

Хуже не то что там им может ИИ поуправлять, что там эта игрушка сделать может нехорошего? Хуже то, что это по факту прослушка, все что рядом с ним сказано, будет уходить куда-то туда, в сеть.

Впрочем, эта проблема касается не только данного устройства но всяких умных колонок, да и простого смартфона..

В текущей версии реализовал отправку команды по кнопочке - т.е. нужно размьютить микрофон, сказать команду, замьютить.
Но вообще да, согласен - те же смартфоны, Алиса в каждой комнате, которая слушает на постоянной основе - это всё уже с нами (со многими по крайней мере).

В Ирине (см. выше) идет непрерывное распознавание, но локальное. Когда видит ключевое слово ассистента ("ирина" или другое в настройках), остаток распознанных фраз начинает передаваться на выполнение.

В каком-то смысле - да, по нашей просьбе управляет OpenAI. Т.е. "переводит" команду, которую мы озвучиваем естественным языком, в команду "понятную" конкретному изделию (роботу, лампочке, кондиционеру и т.п.). Наверное можно представить себе ситуацию, что вместо команды "вперед" намеренно пришлёт команду "назад". Для игрушки - нестрашно, для управления критическими системами - не нужно этот подход использовать.

А по второму вопросу - он очень интересный. Есть несколько решений с работой нейросетей на микроконтроллере для распознавания речи, в том числе и мы делаем. Но там ограничения по числу команд - обработка естественного языка просто не поместиться. Поэтому приходится выбирать.

Ссылочку на репозиторий поправьте пожалуйста.

Спасибо большое! Поправил

Классная штука! Уже видел вашу разработку в комментариях к каким-то статьям. Отличие решения с OpenAI в том, что "большая" нейросетка поймет как четкую команду "Включи свет", так и размытую формулировку, например включить свет по запросу "Стало темно" или "Не вижу ничего". В конкретном решении для велосипеда - это избыточно конечно, но в других кейсах может пригодиться.

Лично я использую смартфон с Tasker для распознавания речи (а распознанная фраза уходит на устройство, сервер и там обрабатывается скриптом на php).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации