Моя первая фиксация on-air показана 3 марта 2020 года. Я знаю, что за несколько недель до этой фиксации я потратил некоторое время на чтение документации TF Lite, играя с Cloudflare Workers K/V и получая свою первую настройку esp-idf в квадрате. После этого дело было до гонок. Свою первоначальную цель я изложил в посте планирование. Я не совсем достиг этой цели. В настоящее время в проекте нет VAD для обработки сценария, когда я забываю активировать дисплей перед началом звонка или видеовстречи. Кроме того, мне не удалось обучить пользовательское ключевое слово, как указано в сообщении пользовательская модель. Однако мне удалось получить функциональную реализацию концепции. Я могу повесить дисплей, а затем в моей лаборатории с ESP-EYEplugged я могу использовать слово пробуждения visual, за которым следует on/off для переключения состояния дисплея.

Хотя это не совсем то, что я планировал, это основа. У меня гораздо больше инструментов и знаний за плечами. Во втором раунде, вероятно, будет задействован Skainet только из-за ограничений голосовых данных, которые легко доступны. Следите за еще парой постов, освещающих некоторые неровности на этом пути и краткий обзор извлеченных уроков.

Код, документы, изображения и т. д. для проекта можно найти здесь, и я буду публиковать дальнейшие обновления на HackadayIO. Для всех, кто может быть заинтересован в создании этого, приведенные ниже инструкции содержат краткое описание. Обновленные версии будут размещены в репозитории. Если у вас есть какие-либо вопросы или идеи, обращайтесь в личку.

Необходимое оборудование:

  1. ЭСП-ГЛАЗ
  2. Дополнительный кейс ESP-EYE
  3. ПиПортал
  4. Дополнительный кейс PyPortal
  5. Два 3,3-вольтовых адаптера USB-to-outler и два мини-кабеля USB-USB.

OR

  1. Два зарядных устройства micro-usb 3,3 В от настенных розеток.

Шаги сборки:

  1. Клонируйте репозиторий в эфире.

Облачный рабочий:

  1. Настройте записи DNS Cloudflare для своего домена и конечной точки или настройте новый домен с помощью Cloudflare, если у вас его нет для разрешения конечной точки.
  2. Настройте учетную запись Cloudflare worker с worker K/V.
  3. Настройте инструмент командной строки Wrangler.
  4. cd в каталог on-air/sighandler.
  5. Обновить [toml](https://github.com/n0mn0m/on-air/tree/main/sighandler/wrangler.toml)
  6. Беги wrangler preview
  7. wrangler publish
  8. Обновите [Makefile](https://github.com/n0mn0m/on-air/tree/main/sighandler/Makefile), указав свой домен, и выполните тестовый вызов.

ПиПортал:

  1. Настройте CircuitPython 5.x на PyPortal.
  2. Если вы новичок в CircuitPython, вам следует сначала прочитать это.
  3. Перейдите в каталог, где вы клонировали эфир.
  4. cd на дисплей.
  5. Обновите secrets.py`, указав информацию о Wi-Fi и конечную точку URL-адреса статуса.
  6. Скопируйте code.py, secrets.py и файлы растровых изображений в screens/ в корень PyPortal.
  7. Дисплей готов к работе.

ESP-ГЛАЗ:

  1. Настройте [esp-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/), используя ветку выпуска 4.1.
  2. Установите espeak и sox.
  3. Настройте виртуальную среду Python 3.7 и установите Tensorflow 1.15.
  4. cd в on-air/voice-assistant/train
  5. chmod +x orchestrate.sh и ./orchestrate.sh
  6. После завершения обучения cd ../smalltalk
  7. Активируйте инструментарий esp-idf, чтобы $IDF_PATH был установлен правильно и все требования были соблюдены.
  8. idf.py menuconfig и задайте настройки Wi-Fi.
  9. Обновите URL-адрес в [toggle\_status.cc](https://github.com/n0mn0m/on-air/tree/main/voice-assistant/smalltalk/main/http/toggle_status.cc)
  10. Это должно соответствовать хосту и конечной точке, на которую вы развернули работника Cloudflare выше.
  11. idf.py build
  12. idf.py --port \<device port\> flash monitor
  13. Вы должны увидеть, как устройство запускается, подключается к WiFi и начинает прослушивать слово пробуждения «визуальный», за которым следует «вкл» или «выкл».