【Google AIY Voice Kit】Google Assistant APIの設定からデモプログラムの実行まで

Google AIY Voice Kitの組み立て&設定に関する記事が続いています。今回は、Google Assistant APIを有効化するお話しです。

さて、オーディオチェックとWifi接続を完了させたら、次はGoogle Cloud Platform(GCP)で、Google Assistant APIを有効化する作業へと移ります。

が、そこでエラーのドツボにはまって苦労した話は前回の記事で紹介いたしました。

【Google AIY Voice Kit】Google Assistant APIの設定で大失敗
前回の記事の段階では、オーディオチェックとWifi接続を完了させました。 次はGoogle Cloud Platform(GCP)...

今回は気を取り直して、再度トライします。ここの部分は、日本語で説明した情報があまりなかったので、自分のメモという意味も込めて、少し詳しめに書いてみました。

今回の作業は、付属のマニュアルの第5章に該当します。

Google のAIY Projectsのサイトでは、こちらで説明してあります。

Voice
Do-it-yourself intelligent speaker. Experiment with voice recognition and the Google Assistant.

Google Cloud Platformで基本的に行なうステップとしては以下の通りです。



Google Cloud Platformへアクセス

Google Cloud Platformにアクセスして使用したいアカウントでサインインします。

最初にGoogle Cloud Platformにアクセスすると、トップ画面で無料トライアルの文字が出てきます。

「えっ、あとで有料になるサービスなわけ?」とアセるわけですが、とりあえずここでは無料トライアルせずに、次へ進むことはできますので、画面右上のコンソールというリンクをクリックします。

上の図の無料トライアルのうえの水色の「コンソール」って文字をクリックです。するとポップアップメニューが出てくるので、

「すべてのサービスと関連 API について、適用される利用規約を遵守して利用することに同意します。」等にチェックを入れてクリックします。

プロジェクトを新規作成

そして、Google Cloud Platformのロゴ横にある「プロジェクトを選択」をクリックするとポップアップメニューが出てくるので…

右の+(プラス)マークをクリックしてプロジェクトを新規作成します。

上の画面では「割り当てのプロジェクト数は残り8件です」なんて書いてありますが、最初は12件ありました…。私がミスしてプロジェクトを削除して…を繰り返してたら、結構減ってしまいました。

今思えば、エラーのドツボにはまってもプロジェクトは削除せずに、認証情報(Credentials)だけ変えれば良かったのかもしれません…。

Google Assistant APIの有効化

プロジェクトを作ったら、左側の三本線をクリックして、「APIとサービス」を選び、画面上部右の青字の「APIとサービスの有効化」をクリックします。

表示される検索ボックスに「Google Assistant API」と入れると…

1件、出てきました。「Google Assistant API」をクリックします。

そして、Google Assistant APIを「有効にする」をクリックします。

認証情報でOAuth クライアントIDを選択

すると、「この API を使用するには、認証情報が必要になる可能性があります。開始するには、[認証情報を作成] をクリックしてください。」と出てきていますが、ここでは、この青いボタンはクリックせず、左下「APIとサービス」のメニュー下に出てくる「認証情報」の文字(「ライブラリ」の下にある)をクリックします。

右側画面の青い「認証情報作成」をクリックすると、いろいろな選択肢が出てくるので、今回は「OAuth クライアント ID」を選択します。

すると、あれ?できないや。なんかメッセージが表示されます。

はじめて使用する場合、「OAuth クライアントを作成するには、まず同意画面でサービス名を設定する必要があります」と出てくるので、「同意画面を設定」をクリックします。

そして、認証情報の画面で、メールアドレスと、ユーザーに表示するサービス名を入力します。

ユーザーに表示するサービス名は、自分が判別可能なものを適当に付けるので大丈夫と思います。それで、「保存」ボタンを押します。

ふたたび、認証情報画面に戻りますと、

こんどは入力できるようになっているので、「アプリケーションの種類」から「その他」を選び、名前を入力します。名前は自分が判別できればなんでもOKです。そして、「作成」ボタンをクリックします。

すると「作成中…」という状態になり、間もなくポップアップウィンドウがあがってきます。こんな感じのウィンドウです。

これはこのまま、OKのボタンを押すと…

OAuth 2.0 クライアント IDが一つ出来上がりました。長々とクライアントIDというものが表示されている右側のダウンロードアイコン(↓)をクリックして、ファイルをダウンロードします。長々とした名前のJsonファイルがダウンロードされます。

Jsonファイルの名称変更&移動

次はダウンロードしたファイルをassistant.jsonにリネームして、/home/pi/直下に移動させ、/home/pi/assistant.jsonという感じにします。その方法は、いろいろあるとは思うのですが、本家のマニュアルの説明に従いますと…

ターミナル画面を開いて、まずは認証情報ファイルの場所を確認してみます。おそらくDownloadsフォルダにダウンロードされているので、それを表示し、リスト化して見てみます。

cd Downloads
ls

とコマンドを打つと、Downloadsフォルダ内のファイルが表示されるので、その中に、client_secret…ではじまる長々とした名前のJsonファイルが出てくるはずです。

この名前を変更するには、

mv client_secret

まで入力して、TABキーを押すと、残りの長々としたファイル名が表示されます。そのあとに、/home/pi/assistant.jsonと続けます。つまり、

mv client_secret_782639341204-79lf5nguo121gvvt0kgu410b35okrni17.apps.googleusercontent.com.json /home/pi/assistant.json

という形で入力します。上の、長々したjsonの名前は、公式マニュアルから拝借したものです。実際は、ご自分のマシンにダウンロードされたものが表示されます。mvとclient_secret…と、.jsonと/home/の間にスペースを入れることを忘れずに!

これで、ダウンロードしたファイルの名前変更したものが、piフォルダの直下に移動したはずです。

さて、終わりが少しずつ見えてきました。

アクティビティ管理画面で有効化する項目

同じGoogle アカウントのアクティビティ管理画面へ行き、

  • ウェブとアプリのアクティビティ(「Chrome の閲覧履歴と Google サービスを使用するウェブサイトやアプリでのアクティビティを含める」にチェックを入れる)
  • 端末情報
  • 音声アクティビティ

を有効にします。

なお、私の場合は最初からすべて有効になっていた情報でしたので、何もしませんでした。

デモプログラムを実行する

さて、ここでいったん、ブラウザを離れてラズベリーパイのデスクトップ画面に戻ります。

マシンのデスクトップ画面にある「Start dev terminal」のアイコンをダブルクリックするとターミナル画面が現れるので、そこに

src/assistant_library_demo.py

のコマンドを入力します。


(追記)

なお、2018年1月に確認したところ、Google Vision kitの登場によるフォルダの変更により、新OSをダウンロードした場合は、場所が変わっています。具体的には、

src/examples/voice/assistant_library_demo.py

です。ご自分のバージョンがどちらになっているかは、該当フォルダをチェックしてファイルが存在しているか確認してみましょう。


これこそ、デモのプログラムです。完了まであと一歩!

「Google Assistant API」の許可にOKする

すると、同じタイミングで、ウェブブラウザ(Google Chromium)のページが突然表示され、

「Google Assistant API」が次の許可をリクエストしてます…というメッセージが表示されます。

そこで、「許可」を選択すると…

ようやくOK Googleが使えるようになりました。終了したいときは、Ctrl-Cを入力すればOKです。

ちなみに、

src/assistant_grpc_demo.py

のコマンドを入力すると、これは「OK Google」と言うかわりに、ボタンを押して質問するとGoogle さんが答えてくれるようになっています。こちらもCtrl-Cを入力して終了します。

さらに、

src/assistant_library_with_button_demo.py

のコマンドを入力すると、「OK Google」と言っても、ボタンを押して質問するのも両方OKなバージョンになります。これが一番便利ですね。同じく、Ctrl-Cの入力で終了します。

ちなみにいずれの場合も、「OK Google」という代わりに、「Hey Google」と言っても反応してくれます。

メモ:私の場合…

思えば、最初にWindowsからリモート操作で設定した際には、最後に出てくるブラウザからのGoogle Assistant APIの許可画面に気づきませんでした。最初にエラーが出てしまったのは、Windows で設定したファイルだったからか、ここで「許可」に気づかなかったからか、厳密には原因は謎のままです。のようです。

(追記1)

認証ファイルは、他のパソコン上からでも設定可能なようです。

(追記2)

Google Assistant SDKのアップデートにより、日本語対応が可能となりました。かなり日本語版のGoogle Homeに近づきました(^^♪。こちらのページもご参照くださいませ。

https://kureuetan.com/web/raspberrypi/4677/

(追記3)

2018年2月21日のGoogle AIY Voice Kit OSのアップデートにより、日本語対応が可能になっています。こちらの記事もご参照くださいませ。

Google AIY Voice kitの日本語対応したOSが来たぞ。ボタンも光る!!
さて、ずいぶんとご無沙汰していたラズパイのGoogle AIY Voice Kitのテーマ。 スペインに帰ってきてから、新しいパソコン...



コメント

  1. まあまあ より:

    突然すいません!!
    私も、ドツボにはまってしまいました・・・
    すいませんが、お知恵をかしてください。
    状況は、jsonファイルの名称変更・移動の後、アクティビティ画面→デモプログラム実行すると!!
    bash: src/examples/voice/assistant: そのようなファイルやディレクトリはありません
    が表示されます。
    よろしくお願いします。

    • まあまあさん、コメントありがとうございます。
      いただいたメッセージから想像するに、可能性としては、以下が考えられるかなと思います。
      1.assistant.jsonファイルが正しい場所に置いていない → 名称変更したassitant.jsonは、Voiceフォルダ内ではなく、piフォルダ直下に置きます。
      2.プログラムを実行する際に入力するファイルのの名称もしくは場所が正しくない → 新しいOSでのデモプログラムのパスは、src/examples/voice/assistant_library_demo.py です。
      ただし、念の為、Voiceフォルダ内を確認して、該当するファイル名を確認するのをお勧めします。
      以上、ご参考になれば幸いです。

  2. まあまあ より:

    すいません!!ファイルの場所は、下記のとおりで問題ないと思うのですが??
    Voiceフォルダー内のファイル名も、関係があるのでしょうか?

    (env) pi@raspberrypi:~/AIY-voice-kit-python $ cd /home/pi
    (env) pi@raspberrypi:~ $ ls
    AIY-voice-kit-python
    Desktop
    Documents
    Downloads
    Music
    Pictures
    Public
    Templates
    Videos
    assistant-sdk-python
    assistant.json

    • まあまあさん、フォルダの中身を拝見するに、assistant.jsonはpi直下にあるので問題ないですね。デモプログラム(assistant_library_demo.pyなど)は、画面左中央の「StartDevTerminal」のアイコンをクリックして出るコンソールから実行しているんですよね。
      出てきてるエラーメッセージが、「bash: src/examples/voice/assistant: そのようなファイルやディレクトリはありません」とのことですので、デモプログラムのファイルではなくて、assistant.jsonの方に問題がありそうな気がするのですが、どうなんでしょう。
      私も以前、似たようなエラーで困ってしまったことがあって、その時は、イメージファイルを再度SDカードに焼き直して解決したのでした。なので、どうしようもない場合は、再インストールの可能性も考えられると良いかもしれません。お力になれず、申し訳ございません。

      • まあまあ より:

        お世話になります。
        すでに、再インストールしてみたのですが!!ダメでした
        assistant.jsonの再設定が必要なのでしょうか?

        • まあまあさん、assistant.jsonは、再度、Googleサイトからダウンロードして試してみると良いと思います。
          ただ、1つ気になったのですが、まあまあさんがコメントで書かれている「assistant.json」ですが、.(ドット)が全角になっています。まさかとは思うのですが、入力する際に、ドットが半角ではなく全角になっている可能性はありませんか?

  3. まあまあ より:

    ドットは、純粋に、記載ミスです。
    Jsonファイルも、再度ダウンロードして見たのですが、当たり前ですが、ファイル名も同じなので、プロジェクトの登録から、やり直してみようと思いますが、やられたことがありますか?

    • まあまあさん、
      プロジェクトの登録からですね。私もプロジェクトの登録からやり直したことあります(^_^;)。
      上手くいくことを願っております(*^^*)

  4. まあまあ より:

    動きました…原因は、Start Dev Terminal 上でファイルの移動等の操作をしていたことが原因のようです。LXTerminalで作業すると動きました。次のステップの日本語化へと進みます。
    大変お世話になりました。

    • まあまあさん、原因が判明されたようで良かったですね。Start Dev Terminalではなくて、LXTerminalで作業すると動くとは…。ラズパイは奥が深いです(*^^*)。

error: Content is protected !!