Android Things를 사용하여 Google Home assistant 구축

(주의: 이 게시물들은 제 이전medium.com의 블로그에서 옮겨온 것입니다)
놀고 난 후에 나는 API를 탐색하고 이 플랫폼을 사용하여 할 수 있는 모든 멋진 일을 시도하기로 결정했다.LED를 깜박이는 것은 5.2초밖에 재미있지 않지만, 이 성과는 나로 하여금 더욱 고급 프로젝트를 처리하는 지식을 갖추게 했다.GitHub에는 전환GPIOs, Bluetooth audio, 심지어 한 가지TensorFlow가 있습니다.
같은 시간 구글은 크랜베리 원주율을 사용하는 DIY 인공지능 조수AIY Voice Kit를 발표했다.나는 매우 흥분하여 지체하지 않고 스스로 하나를 만들고 싶었다.이것은 재미있는 작은 프로젝트처럼 보인다. 나는 구글의 체험을 아마존 에코와 비교하고 싶었다.

실망스럽게도 이 공구 가방들은 도처에서 다 팔렸고, 황소당은 이노베이션에서 90달러 이상의 가격으로 팔렸다.

이 세트는 기본적으로 딱딱한 종이 상자로 음성 모자가 있어 버튼, 스피커, 마이크를 라즈베리 원주율에 연결한다.신기한 점Google Assistant SDK은 음성 기반의 인공지능 상호작용에 API를 제공했다는 점이다.
다행히도 구글 어시스턴트 API는 안드로이드에서 지원된다!그것은 에디슨에게 유용합니까?


얘가 작용했어!이제 이걸 어떻게 함께 놓을지 보자..

뭐 공부 해요?

  • Intel Edison with Arduino Breakout(Android를 지원하는 모든 장치가 작동해야 함에도 불구하고)
  • USB sound card with mic input(보드에 입력/출력용 오디오 잭이 있는 경우 필요하지 않음)
  • 스피커 (헤드폰을 사용하는 이유는 헤드폰이 없기 때문)
  • Microphone
  • Arduino 차단 + 버튼(GPIO 인풋에 순간 스위치를 직접 연결할 수도 있음)

  • Android에서 구글 어시스턴트 실행


    당신이 해야 할 첫 번째 일은 당신의 장치에 안드로이드의 물건을 반짝이는 것입니다. 당신은 나의 previous article 또는 사용official guide에 따라 사용할 수 있습니다.적어도 blinky를 먼저 사용하는 것은 좋은 생각일 수도 있다. 그러면 정상적인 안드로이드 Things 장치를 실행하고 있다는 것을 알게 될 것이다.
    완료되면 Android Studio에서 구글 어시스턴트 예시를 열 수 있습니다.예시 코드**here를 찾을 수 있습니다.**이것은 제가 official repo에서 파생한 것입니다.나는 약간의 변경을 해서 그것을 나의 설정과 함께 일하게 했다. 즉,

  • 버튼을 저전력 대신 높은 레벨 활성화로 변경
    버튼논리적 상태._높을 때 누르기_
  • 버튼을 IO4에 매핑(BoardDefaults.java에서)
  •     public static String getGPIOForButton() {
            switch (getBoardVariant()) {
                case DEVICE_EDISON_ARDUINO:
                    return "IO4";
    
  • 기본적으로 Raspberry Pi가 아닌 USB 사운드 카드
  •     AUDIO_USE_I2S_VOICEHAT_IF_AVAILABLE = false
    

    디바이스를 구축하고 배포하기 전에 장치에서 Google Assistant API를 사용할 수 있도록 자격 증명을 설정하고 Oauth를 통해 권한을 부여해야 합니다.
  • 설명에 따라 Google Assistant API를 활성화하고 클라이언트 기밀 JSON 파일을 가져옵니다.그런 다음 파일 이름을 * * client\u secret\u NNNN으로 변경할 수 있습니다.json**은 간단명료하게 유지합니다.나는 또 이것here이 매우 유용하다는 것을 발견했다.
  • 이 파일을 프로젝트 루트 디렉터리에 복사한 다음 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
    
    준비 완료!응용 프로그램을 구축하고 배치하려면run을 누르십시오.성공적으로 구축될 것입니다.
    guide
    예!아무 것도 쓸모가 없어요. USB 사운드카드가 연결이 안 돼서... 뭐?!
    Edison Arduino 리시버의 설정 방식은 비교적 큰 USB-a 포트와 마이크로 USB 포트 사이에 작은 스위치가 있는 것이다.스위치를 이동하여 전환하면 그 중 하나만 사용할 수 있습니다.즉, ADB 케이스 연결용 micro USB 포트를 사용하여 어플리케이션을 배포 및 디버깅하거나 ** 사운드 카드용 더 큰 USB 호스트 포트를 전환하고 사용할 수 있지만 ** 두 포트를 동시에 사용할 수는 없습니다. (
    고맙습니다. 해결 방안은 매우 간단합니다. 12V의 전원을 연결해야 오디오 카드의 USB 호스트 포트가 활성 상태(즉 마이크로 스위치가 위로 향하는 것)를 유지할 수 있습니다.그러나 micro USB 연결이 끊어지고 사용이 필요합니다:
    $ adb tcpip 5555
    $ adb connect <DEVICE_IP_ADDRESS>:5555
    $ adb shell
    
    이제 응용 프로그램을 다시 배치하고 실행합니다.단추를 누르면 장치가 감청을 시작하고 단추를 놓으면 장치가 감청을 중지합니다.음성 조회는 구글 어시스턴트 API를 통해 발송되며 순식간에 응답을 받을 수 있습니다.깔끔했어이 서비스가 구글 계정에 연결되어 있기 때문에, 달력에 이벤트를 추가하고 다른 정보를 방문할 수도 있다.우스갯소리로 내일 날씨를 알아보고 생각이 없을 때 이것을 보세요ADB shell over Wi-Fi instead.
    됐어, 이렇게.마찬가지로 이것은 매우 재미있다. 요 며칠 동안 어떤 프로젝트에 인공지능을 넣는 것이 얼마나 쉬운지 보니 매우 기쁘다.나는 아직 나의 DIY 구글 조수의 기능을 완전히 탐색하지 못했지만, 나는 이곳에 재미있는 프로젝트 잠재력이 매우 많다고 생각한다.다른 사물인터넷 제품도 제어할 수 있는지 궁금하다comprehensive list:)

    좋은 웹페이지 즐겨찾기