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/
「無料トライアル~」が出た場合は、無視して「閉じる」をクリックする
f:id:viba:20180802165434p:plain

「プロジェクトの選択」をクリックする

f:id:viba:20180802165606p:plain

「新しいプロジェクト」をクリックする

f:id:viba:20180802165640p:plain

任意のプロジェクト名を入力し、場所を選択して「作成」をクリックする

f:id:viba:20180802165707p:plain

OAuth 認証

※後にファイルをダウンロードするため、ラズパイ上で作業すること!

作成したプロジェクトを選択して開く

f:id:viba:20180802170833p:plain

認証情報画面を開く

f:id:viba:20180802170911p:plain:left
API とサービス」-「認証情報」をクリックする

「Oauth 同意画面」を開く

f:id:viba:20180802171151p:plain

任意のサービス名を入力し、保存する

f:id:viba:20180802171313p:plain:left
※入力は必須項目のみでも大丈夫

OAuth クライアント ID を作成する

f:id:viba:20180802171411p:plain:left
「認証情報」-「認証情報を作成」-「OAuth クライアント ID」をクリックする

アプリケーションの種類を選択して、作成を実行する

f:id:viba:20180802171457p:plain:left
種類は「その他」を選択し、自分でわかりやすい名前をつけましょう

OAuth クライアント ID とクライアントシークレットが発行される

f:id:viba:20180802171629p:plain:left
「OK」をクリックする

JSON ファイルをダウンロードする

f:id:viba:20180802171844p:plain
f:id:viba:20180802171857p:plain:left
ダウンロードフォルダに JSON ファイルがダウンロードされます

JSON ファイルをホームディレクトリへ移動する

① デスクトップの Start dev terminal を起動する
f:id:viba:20180802172013p:plain
② カレントディレクトリをホームに移動する

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」まで)をクリップボードにコピーする
f:id:viba:20180803131001p:plain
※後の手順でコードを入力するので、ターミナル画面は開いたままにしておくこと
③ クリップボードにコピーした URL をブラウザで開き、Google アカウントにログインする
f:id:viba:20180803132038p:plain:left
自分の Google アカウントでログインする


f:id:viba:20180803132459p:plain:left
「許可」をクリックする


④ ブラウザに表示されたアクセスコードをコピーし、ターミナルの「Enter the authorization code:」の後に貼り付けて Enter キーを押下する
f:id:viba:20180803132622p:plain

Google Assistant API を有効化する

API とサービス」-「ライブラリ」を開く

f:id:viba:20180803132754p:plain

Google Assistant API」を検索して開く

f:id:viba:20180803132828p:plain

「有効にする」をクリックする

f:id:viba:20180803132903p:plain

アクティビティを設定する

Google アカウントにアクセスし、「個人情報とプライバシー」の中の「Google でのアクティビティの管理」を開く

f:id:viba:20180803133012p:plain

「アクティビティ管理に移動」をクリックする

f:id:viba:20180803134025p:plain

Google にログインし、すべてのアクティビティを有効にする

f:id:viba:20180803134112p:plain:left
以下、同様にクリックして ON にする

バイスを登録する

バイスを登録する際、モデル名の入力が必要になります。
モデル名は世界で一意である必要があるため、「プロジェクトID」+任意の文字列の形が推奨されています。

(モデル名にプロジェクトIDを利用する場合)プロジェクトIDを確認する

Google Cloud Platform のプロジェクト選択画面で確認できる
f:id:viba:20180803134425p:plain

モデル名を登録する

① デスクトップの Start dev terminal を起動する
② カレントディレクトリに移動する

cd

③ コマンドを実行する

googlesamples-assistant-devicetool register-model --manufacturer '任意の文字列' --product-name '任意の文字列' --type デバイスのタイプ --model モデル名

各オプションの意味は、次のとおりです

オプション 内容
--manufacturer メーカー名(任意の文字列)
--product-name 製造者名(任意の文字列)
--type バイスのタイプ(「LIGHT」「SWITCH」「OUTLET」のいずれかを入力)
--model モデル名(任意のユニークな文字列)

<入力例>
f:id:viba:20180803141813p:plain
④ 実行結果が「~ successfully registered」となれば登録成功
f:id:viba:20180803143155p:plain
⑤ 登録したモデル名が正しく設定されていることを確認する

googlesamples-assistant-devicetool list --model

<実行例>
f:id:viba:20180803143351p:plain

バイス名を登録する(割愛)

参考にした手順に「デバイス名の登録」とあったが、登録しなくても先に進むことができたため割愛!

言語を日本語に設定する

スマートフォンGoogle Assistant を起動する

f:id:viba:20180803143638p:plain:left
① ホームボタンをロングタップで Google Assistant が起動する
② 右上のアイコンをタップする

設定画面を開く

f:id:viba:20180803144213p:plain

Voice Kit のデバイス名を選択する

Google Assistant に反映されるまで時間がかかる場合があるので、表示されない場合は気長に待ちましょう
f:id:viba:20180803144324p:plain:left
デフォルトでは「Voice Kit」と表示されます
バイス名を登録した場合は、登録した名前が表示されます

「アシスタントの言語」をタップする

f:id:viba:20180803144559p:plain

「日本語(日本)」をタップする

f:id:viba:20180803144906p:plain

サンプルプログラムを実行する

サンプルプログラムは、以下のフォルダに格納されています
/home/pi/AIY-projects-python/src/examples/voice
現段階では3つのプログラムが実行できます
・assistant_library_demo.py
・assistant_grpc_demo.py
・assistant_library_with_button_demo.py
f:id:viba:20180803145532p:plain

assistant_library_demo.py を試す

① デスクトップの Start dev terminal を起動する
② Python3 でプログラムを実行する

python3 src/examples/voice/assistant_library_demo.py

サンプルプログラムは Python3 で動作します。
今回試した環境は Python2 と Python3 が同居しており、デフォルトは Python2 だったので、サンプルプログラムを実行する際のコマンドは「Python3」としています。
Pythonバージョン確認>
f:id:viba:20180803150053p:plain

③ (初回実行時のみ)ブラウザが立ち上がるので、アクセスを許可する
f:id:viba:20180803150446p:plain
④ (初回実行時のみ)「認証フローが完了した」という旨のメッセージが出るので、ブラウザを閉じる
f:id:viba:20180803150518p:plain
⑤ ターミナルに待ち受け状態であるメッセージが表示される
f:id:viba:20180803150826p:plain
⑥ ボタンがゆっくり点滅するので、「OK,Google」と呼びかける
f:id:viba:20180803151419p:plain:left
ボタンが点灯したら、天気などを話しかけてみましょう!
日本語で回答してくれます。


⑦ Ctrl + C で終了

assistant_grpc_demo.py を試す

① デスクトップの Start dev terminal を起動し、Python3 でプログラムを実行する

python3 src/examples/voice/assistant_grpc_demo.py

② ボタンがゆっくり点滅するので、ボタンを押す
③ ボタンが点灯したら、天気などを話しかけてみましょう!
④ ターミナル画面に、認識された音声が表示されると同時に、日本語で答えが返ってきます
f:id:viba:20180806133613p:plain

assistant_library_with_button_demo.py を試す

「OK,Google」か、ボタンを押すことでボタンが点灯して質問を待ち受けます。
その後の動作は assistant_library_demo.py と同じです。

いろいろ話しかけて遊んでみましょう!