Google AIY Voice Kit を組み立てる③ ~サンプルプログラム実行
前回の記事まででOS も箱の準備もできたので、いよいよ「オーケーグーグル」をできるように設定します。
前提条件
・Google Assistant SDK 0.4.2 以上がインストールされていること
・Google アカウントを取得していること
・Python3 がインストールされていること
・Google Assistant がインストールされたスマートフォンを持っていること
サンプルプログラムの実行
Google Cloud Platform(以下、GCP) プロジェクトの作成
GCP にアクセスし、Google アカウントでログインする
URL:https://console.cloud.google.com/
「無料トライアル~」が出た場合は、無視して「閉じる」をクリックする
「プロジェクトの選択」をクリックする
「新しいプロジェクト」をクリックする
任意のプロジェクト名を入力し、場所を選択して「作成」をクリックする
OAuth 認証
※後にファイルをダウンロードするため、ラズパイ上で作業すること!
作成したプロジェクトを選択して開く
認証情報画面を開く
「API とサービス」-「認証情報」をクリックする
「Oauth 同意画面」を開く
任意のサービス名を入力し、保存する
※入力は必須項目のみでも大丈夫
OAuth クライアント ID を作成する
「認証情報」-「認証情報を作成」-「OAuth クライアント ID」をクリックする
アプリケーションの種類を選択して、作成を実行する
種類は「その他」を選択し、自分でわかりやすい名前をつけましょう
OAuth クライアント ID とクライアントシークレットが発行される
「OK」をクリックする
JSON ファイルをホームディレクトリへ移動する
① デスクトップの Start dev terminal を起動する
② カレントディレクトリをホームに移動する
cd
③ ダウンロードした JSON ファイルをホームに移動する
mv Downloads/client_secret_* .
<ワイルドカード「*」について>
例では「client_secret_~」で始まるファイルが1つしかないことを前提にワイルドカード「*」を使用しています。
同じような名前のファイルが複数ある場合は、必ずユニークになるようにファイル指定してください!
④ 移動した JSON ファイルを「assistant.json」のファイル名でコピーしておく
cp client_secret_* assistant.json
OAuth 認証を実行する
① google-oauthlib-tool コマンドを実行する
google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless --client-secrets client_secret_*
コマンド最後の「--client-secrets」オプションの後に、先ほど移動した JSON ファイル名を指定します。
ファイル名が長いので、ワイルドカードを使用して指定しています。
② 表示された URL(https:// 以下、「prompt=consent」まで)をクリップボードにコピーする
※後の手順でコードを入力するので、ターミナル画面は開いたままにしておくこと
③ クリップボードにコピーした URL をブラウザで開き、Google アカウントにログインする
自分の Google アカウントでログインする
「許可」をクリックする
④ ブラウザに表示されたアクセスコードをコピーし、ターミナルの「Enter the authorization code:」の後に貼り付けて Enter キーを押下する
デバイスを登録する
デバイスを登録する際、モデル名の入力が必要になります。
モデル名は世界で一意である必要があるため、「プロジェクトID」+任意の文字列の形が推奨されています。
(モデル名にプロジェクトIDを利用する場合)プロジェクトIDを確認する
Google Cloud Platform のプロジェクト選択画面で確認できる
モデル名を登録する
① デスクトップの Start dev terminal を起動する
② カレントディレクトリに移動する
cd
③ コマンドを実行する
googlesamples-assistant-devicetool register-model --manufacturer '任意の文字列' --product-name '任意の文字列' --type デバイスのタイプ --model モデル名
各オプションの意味は、次のとおりです
オプション | 内容 |
---|---|
--manufacturer | メーカー名(任意の文字列) |
--product-name | 製造者名(任意の文字列) |
--type | デバイスのタイプ(「LIGHT」「SWITCH」「OUTLET」のいずれかを入力) |
--model | モデル名(任意のユニークな文字列) |
<入力例>
④ 実行結果が「~ successfully registered」となれば登録成功
⑤ 登録したモデル名が正しく設定されていることを確認する
googlesamples-assistant-devicetool list --model
<実行例>
言語を日本語に設定する
設定画面を開く
Voice Kit のデバイス名を選択する
※ Google Assistant に反映されるまで時間がかかる場合があるので、表示されない場合は気長に待ちましょう
デフォルトでは「Voice Kit」と表示されます
デバイス名を登録した場合は、登録した名前が表示されます
「アシスタントの言語」をタップする
「日本語(日本)」をタップする
サンプルプログラムを実行する
サンプルプログラムは、以下のフォルダに格納されています
/home/pi/AIY-projects-python/src/examples/voice
現段階では3つのプログラムが実行できます
・assistant_library_demo.py
・assistant_grpc_demo.py
・assistant_library_with_button_demo.py
assistant_library_demo.py を試す
① デスクトップの Start dev terminal を起動する
② Python3 でプログラムを実行する
python3 src/examples/voice/assistant_library_demo.py
サンプルプログラムは Python3 で動作します。
今回試した環境は Python2 と Python3 が同居しており、デフォルトは Python2 だったので、サンプルプログラムを実行する際のコマンドは「Python3」としています。
<Pythonバージョン確認>
③ (初回実行時のみ)ブラウザが立ち上がるので、アクセスを許可する
④ (初回実行時のみ)「認証フローが完了した」という旨のメッセージが出るので、ブラウザを閉じる
⑤ ターミナルに待ち受け状態であるメッセージが表示される
⑥ ボタンがゆっくり点滅するので、「OK,Google」と呼びかける
ボタンが点灯したら、天気などを話しかけてみましょう!
日本語で回答してくれます。
⑦ Ctrl + C で終了
assistant_grpc_demo.py を試す
① デスクトップの Start dev terminal を起動し、Python3 でプログラムを実行する
python3 src/examples/voice/assistant_grpc_demo.py
② ボタンがゆっくり点滅するので、ボタンを押す
③ ボタンが点灯したら、天気などを話しかけてみましょう!
④ ターミナル画面に、認識された音声が表示されると同時に、日本語で答えが返ってきます
assistant_library_with_button_demo.py を試す
「OK,Google」か、ボタンを押すことでボタンが点灯して質問を待ち受けます。
その後の動作は assistant_library_demo.py と同じです。
いろいろ話しかけて遊んでみましょう!