Моя первая фиксация on-air
показана 3 марта 2020 года. Я знаю, что за несколько недель до этой фиксации я потратил некоторое время на чтение документации TF Lite, играя с Cloudflare Workers K/V и получая свою первую настройку esp-idf
в квадрате. После этого дело было до гонок. Свою первоначальную цель я изложил в посте планирование. Я не совсем достиг этой цели. В настоящее время в проекте нет VAD для обработки сценария, когда я забываю активировать дисплей перед началом звонка или видеовстречи. Кроме того, мне не удалось обучить пользовательское ключевое слово, как указано в сообщении пользовательская модель. Однако мне удалось получить функциональную реализацию концепции. Я могу повесить дисплей, а затем в моей лаборатории с ESP-EYE
plugged я могу использовать слово пробуждения visual
, за которым следует on/off
для переключения состояния дисплея.
Хотя это не совсем то, что я планировал, это основа. У меня гораздо больше инструментов и знаний за плечами. Во втором раунде, вероятно, будет задействован Skainet только из-за ограничений голосовых данных, которые легко доступны. Следите за еще парой постов, освещающих некоторые неровности на этом пути и краткий обзор извлеченных уроков.
Код, документы, изображения и т. д. для проекта можно найти здесь, и я буду публиковать дальнейшие обновления на HackadayIO. Для всех, кто может быть заинтересован в создании этого, приведенные ниже инструкции содержат краткое описание. Обновленные версии будут размещены в репозитории. Если у вас есть какие-либо вопросы или идеи, обращайтесь в личку.
Необходимое оборудование:
- ЭСП-ГЛАЗ
- Дополнительный кейс ESP-EYE
- ПиПортал
- Дополнительный кейс PyPortal
- Два 3,3-вольтовых адаптера USB-to-outler и два мини-кабеля USB-USB.
OR
- Два зарядных устройства micro-usb 3,3 В от настенных розеток.
Шаги сборки:
- Клонируйте репозиторий в эфире.
Облачный рабочий:
- Настройте записи DNS Cloudflare для своего домена и конечной точки или настройте новый домен с помощью Cloudflare, если у вас его нет для разрешения конечной точки.
- Настройте учетную запись Cloudflare worker с worker K/V.
- Настройте инструмент командной строки Wrangler.
cd
в каталогon-air/sighandler
.- Обновить
[toml](https://github.com/n0mn0m/on-air/tree/main/sighandler/wrangler.toml)
- Беги
wrangler preview
wrangler publish
- Обновите
[Makefile](https://github.com/n0mn0m/on-air/tree/main/sighandler/Makefile)
, указав свой домен, и выполните тестовый вызов.
ПиПортал:
- Настройте CircuitPython 5.x на PyPortal.
- Если вы новичок в CircuitPython, вам следует сначала прочитать это.
- Перейдите в каталог, где вы клонировали эфир.
cd
на дисплей.- Обновите secrets.py`, указав информацию о Wi-Fi и конечную точку URL-адреса статуса.
- Скопируйте
code.py
,secrets.py
и файлы растровых изображений вscreens/
в корень PyPortal. - Дисплей готов к работе.
ESP-ГЛАЗ:
- Настройте
[esp-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/)
, используя ветку выпуска 4.1. - Установите espeak и sox.
- Настройте виртуальную среду Python 3.7 и установите Tensorflow 1.15.
cd
вon-air/voice-assistant/train
chmod +x orchestrate.sh
и./orchestrate.sh
- После завершения обучения
cd ../smalltalk
- Активируйте инструментарий
esp-idf
, чтобы$IDF_PATH
был установлен правильно и все требования были соблюдены. idf.py menuconfig
и задайте настройки Wi-Fi.- Обновите URL-адрес в
[toggle\_status.cc](https://github.com/n0mn0m/on-air/tree/main/voice-assistant/smalltalk/main/http/toggle_status.cc)
- Это должно соответствовать хосту и конечной точке, на которую вы развернули работника Cloudflare выше.
idf.py build
idf.py --port \<device port\> flash monitor
- Вы должны увидеть, как устройство запускается, подключается к WiFi и начинает прослушивать слово пробуждения «визуальный», за которым следует «вкл» или «выкл».