AndroidのものでGoogleホームアシスタントを造ってください


(注:これらの投稿は前から移動されますmedium.com ブログ
遊んでから、私はAPIを探索し、このプラットフォームで行うことができます他のすべてのクールなものを試してみることにしました.LEDを点滅させることは約5.2秒の楽しみだけでしたが、その達成はより高度なプロジェクトのいくつかに取り組むために私に知識を準備しました.Githubには、いくつかの例がありますGPIOs , Bluetooth audio , ワンオンオンTensorFlow .
同時に、Googleが発表したAIY Voice Ki T :ラズベリーパイを使ったDIY AIアシスタント.私はスーパー興奮して自分自身を構築するのを待つことができなかった;それは楽しい小さなプロジェクトのように見えました、そして、私は常にGoogleの経験をアマゾンエコーのものと比較したかったです.

私の失望にたいへん、キットは至る所で売られました、そして、ScalpersはeBayで90ドルの上に彼らを売りに行っていました

キットは、基本的にボタン、スピーカーとマイクをラズベリーパイに接続する声帽で段ボール箱でした;魔法はGoogle Assistant SDK , これは、音声ベースのAIの相互作用のAPIを提供します.
幸いにも、GoogleアシスタントAPIはAndroidのものでサポートされています!それはエジソンで働きますか.


動く!それでは、一緒に置く方法を見てみましょう.

必要なもの

  • インテルEdisonとArduinoのブレイクアウト
  • USB sound card with mic input (ボードが/outのオーディオジャックを持っている場合には必要ありません)
  • スピーカー(私はヘッドフォンを使いました.私には何の役にも立たないので)
  • Microphone
  • Arduinoシールド+ボタン(また、GPIOピンに直接瞬間的なスイッチを配線することができます)

  • AndroidアシスタントでGoogleアシスタントを実行中


    あなたがする必要がある最初のことはあなたのデバイスにAndroidのものをフラッシュすることですprevious article またはofficial guide . 少なくともBlinkyを最初に得るのは良い考えかもしれないので、あなたは機能しているAndroidのデバイスを持っていることを知っている.
    完了したら、AndroidのスタジオでGoogleアシスタントのサンプルを開くことができます.サンプルコードを見つけることができます**here , **私は、私はofficial repo ; 私はいくつかのマイナーな変更をしました.

  • ボタンを「Low」の代わりにハイにアクティブにするように変更しました
    ボタン.論理状態.ハイテンション
  • ボタンを押したままにします.
  •     public static String getGPIOForButton() {
            switch (getBoardVariant()) {
                case DEVICE_EDISON_ARDUINO:
                    return "IO4";
    
  • ラズベリーパイのためのボイスハットの代わりにUSBサウンドカードへのデフォルト
  •     AUDIO_USE_I2S_VOICEHAT_IF_AVAILABLE = false
    

    デバイスを構築して配備する前に、あなたのデバイスがGoogle Assistant APIを使用でき、OAuthを使用して許可を取得する必要があります.
  • 指示に従うhere GoogleアシスタントAPIを有効にし、クライアントの秘密JSONファイルを取得します.次に、そのファイルを名前変更することができます.それを短くしておくこと.私も見つけたguide かなり役に立つ.
  • そのファイルをプロジェクトルートディレクトリにコピーし、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ブレイクアウトボードは、大きなUSB - AポートとマイクロUSBポートの間に小さなトグルスイッチがある方法でセットアップです.あなたは、トグルスイッチを動かすことによって、1つまたは他を使うことができるだけです.つまり、あなたのアプリケーションを展開したりデバッグしたりするために、ADBシェル接続用のマイクロUSBポートを使用することもできます.
    ありがたいことに、解決策は簡単です:あなたがサウンドカード(すなわち、直面している小さなトグルスイッチ)のためにUSBホストポートをアクティブに保つことができるように、あなたは12 Vの電源を接続する必要があります.しかし、マイクロUSB接続を失い、使用する必要がありますADB shell over Wi-Fi instead :
    $ adb tcpip 5555
    $ adb connect <DEVICE_IP_ADDRESS>:5555
    $ adb shell
    
    アプリケーションを再度配備して実行します.お使いのデバイスは、ボタンを押すと、ときにそれを解放するときに停止を開始します.あなたの声のクエリは、GoogleのアシスタントAPI経由で送信され、ほとんど瞬時に応答を得る.きちんと!サービスはあなたのGoogleアカウントにリンクされているので、あなたもあなたのカレンダーにイベントを追加し、他の情報にアクセスするように指示することができます.冗談を求めて、明日の天気を見つけてください、そして、あなたが考えを使い果たすとき、チェックしてくださいcomprehensive list .
    まあ、それです.再び、これは多くの楽しみでした、そして、どんなプロジェクトにでも若干の愛を振り回すために、これらの日がどれくらい簡単かについて見ることはすばらしいです.私はまだ完全に私のDIYのGoogleアシスタントの機能を探索していないが、私はここに興味深いプロジェクトの可能性がたくさんあると思う.私はそれが他のiotの製品を制御できるかどうかを見つけるのが大好きだ.perhaps a spoofed WeMo switch? :)