(Примечание: эти сообщения перенесены из моего предыдущего (Примечание: эти сообщения перенесены из моего предыдущего блог)
После того, как я впервые поиграл с Android-вещами , я решил изучить API и попробовать все другие интересные вещи, которые вы могли бы сделать с этой платформой. Хотя мигание светодиода доставляло удовольствие всего около 5,2 секунды, это достижение подготовило меня к тому, чтобы заняться некоторыми более продвинутыми проектами. На GitHub есть довольно много примеров, начиная от переключения GPIOs , аудио Bluetooth и даже одного на Тензорный поток .
Примерно в то же время Google анонсировала свой AIY Voice Ki t: помощник искусственного интеллекта DIY, использующий Raspberry Pi. Я был очень взволнован и не мог дождаться, чтобы создать его сам; это выглядело как забавный маленький проект, и я всегда хотел сравнить опыт Google с Amazon Echo.
К моему большому разочарованию, наборы были распроданы повсюду, и скальперы продавали их на eBay более чем за 90 долларов:(
Комплект представлял собой, по сути, картонную коробку с голосовой шляпой, которая соединяет кнопку, динамик и микрофоны с Raspberry Pi; волшебство заключалось в Google Assistant SDK , который предоставляет API-интерфейсы для взаимодействия с ИИ на основе голоса.
К счастью для меня, API-интерфейсы Google Assistant поддерживаются на Android Things! Сработает ли это на Эдисоне?
Это работает! Теперь давайте посмотрим, как собрать это воедино…
Вещи Вам Понадобится
Intel Edison с прорывом Arduino (должно работать любое устройство, поддерживаемое Android Things)
Звуковая карта USB с микрофонным входом (не требуется, если на вашей плате есть аудиоразъемы для входа/выхода)
Динамики (я использовал наушники, потому что у меня их нет под рукой)
Arduino Щит + кнопка (вы также можете подключить мгновенный переключатель непосредственно к выводу GPIO)
Запуск Google Assistant на Android-устройствах
Первое, что вам нужно будет сделать, это прошить Android на свое устройство, вы можете следовать моей предыдущей статье или воспользоваться официальным руководством . Возможно, было бы неплохо сначала хотя бы добраться до blinky, чтобы вы знали, что у вас есть работающее устройство Android Things.
Как только это будет сделано, вы сможете открыть образец Google Assistant в Android Studio. Вы можете найти пример кода ** здесь , ** который я разветвил из официального репо ; Я внес некоторые незначительные изменения, чтобы заставить его работать с моей настройкой, а именно:
Изменил кнопку, чтобы активировать на высоком, а не на низком уровне
Кнопка. Логическое состояние. НАЖАТЫЙ_ КОГДА_ВЫСОКИЙ
Сопоставленная кнопка с IO4 (в BoardDefaults.java )
public static String getGPIOForButton() { switch (getBoardVariant()) { case DEVICE_EDISON_ARDUINO: return "IO4";
- По умолчанию используется звуковая карта USB вместо голосовой шляпы для Raspberry Pi
AUDIO_USE_I2S_VOICEHAT_IF_AVAILABLE = false
Перед сборкой и развертыванием на устройстве вам также необходимо настроить учетные данные, чтобы ваше устройство могло использовать API-интерфейсы Google Assistant и предоставлять разрешения через Oauth:
Следуйте инструкциям здесь , чтобы включить API Google Assistant и получить секретный файл JSON вашего клиента. Затем вы можете переименовать этот файл в **client_secret_NNNN.json ** чтобы быть кратким (если вы хотите). Я также нашел это руководство довольно полезным.
Скопируйте этот файл в корневой каталог вашего проекта, затем запустите инструмент Google oauthlib для создания учетных данных.json:
pip install google-auth-oauthlib[tool] google-oauthlib-tool --client-secrets client_secret_NNNN.json \ --credentials app/src/main/res/raw/credentials.json \ --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --save
Все готово! Теперь нажмите “Выполнить”, чтобы приложение было создано и развернуто. Он должен быть успешно построен, и вас встретят:
Ура! За исключением того, что ничего не работает, потому что звуковая карта USB не подключена … что?!
Плата Edison Arduino breakout настроена таким образом, что между большим портом USB-A и портом micro USB имеется крошечный переключатель. Вы можете использовать только одно или другое, перемещая тумблер. Это означает, что вы можете либо использовать порт micro USB для подключения к оболочке ADB для развертывания и отладки вашего приложения, или ** вы можете переключиться и использовать больший порт USB-хоста для вашей звуковой карты, ** но не оба одновременно:(
К счастью, решение простое: вам нужно подключить источник питания 12 В, чтобы вы могли поддерживать активный порт USB-хоста для звуковой карты (т.Е. крошечный переключатель вверх). Однако вы потеряете соединение micro USB, и вместо этого вам придется использовать оболочку ADB через Wi-Fi :
$ adb tcpip 5555 $ adb connect:5555 $ adb shell
Теперь разверните и снова запустите свое приложение. Ваше устройство начнет прослушивание, когда вы нажмете кнопку, и остановится, когда вы ее отпустите. Ваш голосовой запрос отправляется через API Google Assistant, и вы получаете ответ почти мгновенно. Аккуратно! Поскольку сервис связан с вашей учетной записью Google, вы даже можете указать ему добавлять события в свой календарь и получать доступ к другой информации. Попросите пошутить, узнайте погоду на завтра, а когда у вас кончатся идеи, ознакомьтесь с этим исчерпывающим списком .
Ну, вот и все. Опять же, это было очень весело, и здорово видеть, как легко в наши дни внедрить немного искусственного интеллекта в любой проект. Я все еще не до конца изучил возможности своего самодельного помощника Google, но я думаю, что здесь есть большой потенциал для интересных проектов. Я бы хотел узнать, может ли он также управлять другими продуктами Интернета вещей, возможно, поддельным переключателем WeMo? 🙂
Оригинал: “https://dev.to/w4ilun/build-a-google-home-assistant-with-android-things-19fa”