\r\n\r\n

Raspberry Piで作るdiy Google Home Assistantの作り方

音声で操作できるスマートホームハブを自作してみませんか? Raspberry PiのGoogleアシスタントの使い方を紹介します!...

音声で操作するアシスタントは、急速に一般化しています。多くの家庭では、Alexaやgooglehomeで照明からメディア、さらには時間管理までをコントロールしています。

これらのデバイスは、少なくともある程度は誰もが利用できる技術で動いています。 GoogleのアシスタントSDKを使えば、自分のデバイスでサービスを利用することができるのです。Raspberry PiでGoogleアシスタントを設定し、GPIOピンでLEDを起動する方法を説明します。

ラズベリーパイホームアシスタントに必要なハードウエア

必要です。

  1. SDカードに新しいRaspberry Piがインストールされます。
  2. USBウェブカメラまたはマイク。
  3. 外部スピーカー。
  4. Pi LEDチュートリアルの回路(オプション)
  5. Googleアカウントにサインインするためのブラウザです。

注:このチュートリアルでは、機材が異なる場合があります。予備のUSBウェブカメラをマイクとして使用したことがあるだけです。互換性のあるウェブカメラやマイクであれば動作するはずですし、Piと互換性のあるデバイスのリストも豊富に用意されているので、参考になります。

また、3.5mmオーディオ出力を使用しています。 HDMIやその他の出力ソースでも動作しますが、以下のサウンド設定に変更が必要です。

**USB Webカメラとスピーカー、使用中の場合はLED回路を設定します。

サウンドを設定する

このチュートリアルは、Pi上で直接行うか、SSHでPiに接続することで行うことができます。

どちらも端末で起動し、サウンドの設定を確認します。利用可能なデバイスをリストアップするには、arecord-lとplay-lというコマンドを使用します。

上図では、USBウェブカメラをカード1、デバイス0としていますが、マイクとスピーカー出力のカード番号とデバイス番号をメモしておいてください。

ここで、/home/pi ディレクトリにいることを確認し、新規ファイルを作成し、nano で以下のように開きます。

sudo nano .asoundrc

このカタログの内容は、お使いのカードやデバイス番号によって異なります。ご希望により、3.5mmではなくHDMI出力に対応させることも可能です。

上記のコードのバージョンを入力したら、Ctrl+Xを押して保存して終了します。

短いクリップを録音して再生し、設定をテストします。

オプション手順:マイクの入力音量を変更するには、alsamixerを開き、F6キーを押してデバイス間を循環させます。

以上、音出し完了です。

googleプロジェクトの作成

Piのブラウザを開くか、SSHで接続する場合はローカルでブラウザを開く。Google Operationsコンソールに移動し、newprojectをクリックします。

終了したら、ウィンドウをアクティブにしたまま、新しいタブを開いてください - すぐに開始します。

google assistant apiを有効にする

続行するには、オンライン調整が必要です。GoogleAssistant APIのウェブサイトに移動し、[Enable]をクリックします。

アクティビティコントロールパネルで、以下のアクティビティが開かれていることを確認してください。

  • ウェブとアプリケーションのアクティビティ(Chrome履歴のチェックボックスを含む)
  • 機器情報
  • 音声・音響活動

これで、機器の登録に進むことができます。

Raspberry Piを登録する

オペレーションコンソールに戻り、左側のパネルから「デバイス登録」を選択します。製品」で、覚えやすいデバイスの名前を作成します。商号は重要ではありません(ただし、必ず存在する必要があります)ので、デバイスの種類として「自動」を選択します。

モデルの登録]をクリックし、次の画面で[OAuth 2.0認証情報のダウンロード]をクリックします。JSONファイルに慣れていない方もご安心ください。JSONの使い方を学ぶことは、将来のためになりますよ。

Googleの公式ガイドでは、/home/piにファイルを移動することが推奨されていますので、今すぐファイルマネージャを開いてください。

SSHをご利用の場合の追加手順

SSHを使用している場合、JSONファイルをPiではなくローカルマシンにダウンロードすることになります。 転送するには、SSH接続せずに別のターミナルウィンドウを開いてください。このウィンドウで、次のコマンドを使用して、クライアントの機密JSONファイルをコピーします。

scp ~/Downloads/client_secret_client-id.json pi@raspberry-pi-ip-address:/home/pi/

raspberry pi ip address」をpiのipアドレスに置き換えて、パスの前にコロンがあるのを忘れないようにしましょう。JSONファイルを別の場所にダウンロードする場合は、ローカルパスを変更してください。プロンプトが表示されたらパスワードを入力すると、ファイルがPiのホームディレクトリにコピーされます。

SSH端末に戻り、/home/piに移動し、ls-lと入力して、ディレクトリ内のファイルを一覧表示します。転送されたクライアント機密のJSONファイルが表示されるはずです。

sdkのインストール

GoogleはPythonの仮想環境での作業を推奨しています。envという新しい仮想環境を作成します。

このチュートリアルでは、Pythonの仮想環境の使い方を説明します。

Pip、Setuptools、Wheelの最新版をインストールし、仮想環境を有効にします:.

env/bin/python -m pip install --upgrade pip setuptools wheelsource env/bin/activate

googleassistantは、いくつかの依存関係があるので、仮想環境にインストールする必要があります。

sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev

最後に、Google Assistant SDK、examples、OAuthの各ツールをインストールします。

python -m pip install --upgrade google-assistant-librarypython -m pip install --upgrade google-assistant-sdk[samples]python -m pip install --upgrade google-auth-oauthlib[tool]

インストールに失敗した場合は、スペルやスペーシングを十分に確認してください。

Raspberry Piの識別

google auth oauthlib [tool]と先ほどダウンロードした認証情報JSONファイルを使って、Raspberry Piを認証します。

google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --scope https://www.googleapis.com/auth/gcm \ --save --headless --client-secrets /home/pi/YOUR_CLIENT_SECRET_ID.json

ダウンロードしたファイルには、「 \u CLIENTu SECRET ID 」が必要ですので、まずファイル名をコピーしてください。このクライアントIDは正しいものでなければなりません。ファイル名を変更しないでください

認証コードを貼り付けるよう求めるリンクが表示されます。

リンクをクリックすると、ブラウザが起動します。Googleアカウントで端末を有効にするよう促されます。以下の認証コードをコピーして、ターミナルウィンドウに貼り付けて戻してください。

保存された資格情報を読み込むための確認メッセージが表示されます: /home/pi... これは、piがGoogleアカウントで正常に認証されたことを意味します。

試してみる

さて、すべての準備が整ったので、いよいよpigoogleアシスタントをテストしてみましょう。以下のコマンドを使用してアシスタントを実行します。

googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model

My Devの項目(Operations ConsoleのSettings cogの下にあります)を項目IDに置き換える必要があります。デバイスのモデルIDは、Operations Consoleのデバイス登録セクションに記載されています。

応答があると、ターミナルに「Yes Google」とプログラムが出力され、質問をすることができます。

それだ!Raspberry PiでGoogleアシスタントが動作するようになりました。なお、出力音量が少し小さい場合は、「ヘイ、グーグル、音量を80%にしてくれ」と言えば、変更できますよ

ボーナス:ボイスアクティベートgpio

ArduinoとSiriで照明を制御することも可能ですが、もっと簡単な方法があります。LEDを設定すれば、Googleアシスタントで音声操作することも可能です。

googleassistantがGPIOピンを使用するように設定するのは比較的簡単ですが、いくつかの追加手順が必要です。Google オペレーションコンソールにアクセスし、デバイス登録でお使いのデバイスを探します。でクリックし、特徴メニューを開く。

OnOff 機能を開き、[保存] をクリックします。

ここで、SDKのバージョンをenv仮想環境のPiにgit:でクローンしていることを確認してください。

git clone https://github.com/googlesamples/assistant-sdk-python

仮想環境なので、先にRPi.GPIOファイルをインストールする必要があります。

pip install rpi.gpio

ここで、includehotwords.pyスクリプトに移動します。

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library

スクリプトの修正

hotword.pyスクリプトでフォームに数行追加する必要があるので、nanoエディタで以下のように開いてください。

nano hotword.py

import文の下に、自作のRPi.GPIOファイルを追加します。

import RPi.GPIO as GPIO

プロセス・アーティクルイベントメソッドを探してください。66行目で、print文を削除またはコメントアウトし、LEDを制御するif文を追加します。

#print('Do command', command, 'with params', str(params))if command == "action.devices.commands.OnOff": if params['on']: print('---------------') print('Led turned on') print('---------------') GPIO.output(18, GPIO.HIGH) else: print('---------------') print('Led turned off') print('---------------') GPIO.output(18, GPIO.LOW)

このロジックはLEDを制御するものですが、今のところ出力としては設定されていません。main()関数内で、処理待ちイベントメソッドを呼び出す前に設定します。

GPIO.setmode(GPIO.BCM)GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW)

GPIOピンは、出力に設定され、Low状態で初期化されます。保存して終了します。修正したスクリプトを、モデルID番号(オペレーションコンソールで確認)をパラメータとして渡して実行することができます。

python hotword.py --device-model-id YOUR-MODEL-ID-HERE

端末の出力はこれまでと同じで、アシスタントも標準的に動作しますが、今度は「OK, Google, open」と言うと、新しい出力が表示されます。

注:上の画像は、アシスタントがリクエストを聞いていることと、スクリプトにprint文が追加されていることだけを示すために切り取られています。

あなたのLEDも光っているはずです

あなただけのDIY Raspberry Pi Google Home Assistant

このプロジェクトは、googleapiサービスの使い方の良い入門編です。Googleアシスタントのデバイスを手に入れたら、googlehomeコマンドを試してみましょう!今回は、googlehomeのトリビアゲームをご紹介しました。

  • 2021-03-22 22:23 に公開
  • 閲覧 ( 29 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ