Рубрики
Без рубрики

Создайте помощника Google Home с помощью Android-вещей

(Примечание: эти сообщения перенесены из моего предыдущего medium.com блог) После игры с андроидом… С тегами android, google cloud, iot, java.

(Примечание: эти сообщения перенесены из моего предыдущего (Примечание: эти сообщения перенесены из моего предыдущего блог)

После того, как я впервые поиграл с 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”