去る8月3日に行われたの「Google for Mobile I/O RECAP Japan 2017」でGoogle Assistantが随分推されていたのと、Google Home Miniが発売されたので、Google Assistantについて調べてみました。

動作概要

Google AssistantはユーザがGoogle Assistantに話しかけると以下のように動作します。
  1. ユーザがGoogle Assistantに話しかける
  2. Google Assistantで話された言葉を分析し、起動するアプリ名称や種類、それに渡すパラメータを特定
  3. Google AssistantからActions on Goolgeにアプリ名称や種類を渡し、接続先のURLを取得
  4. URLに対して、パラメータを設定して送信し、それで得られた応答をユーザに表示

Action Package

Google Assistantがユーザからのメッセージを解析し、どのアプリを立ち上げるべきかを判断するために、Actions on Googleに登録されている情報を確認します。Actions on Googleに登録する「Action Package」は以下のような情報が含まれます。
名称概要
ActionユーザからのGoogle Assistantへの要求に対して、アプリとして用意するエンドポイント
Fulfillmentユーザからの要求を実行するWebサイト

Actionには大きく分けて2パターンあります。
Action 概要
Default action Google Assistantに対して"Ok google, talk to [アプリ名称]"と、直接ユーザからアプリ名を指定されたときに動作するエンドポイント。
このActionはActoin packageに必ず1つ定義する必要があり、"actions.intent.MAIN"で定義する必用がある。
Additional actions to deep link into your app Google Assitantに対して"Ok google, talk to [アプリ名称] to find a smartphone made by Apple"といったように、直接ユーザがアプリ名を指定し、且つやりたいこと(例の場合では"Apple製のスマートフォンを探したい")も明示している場合に動作するエンドポイントになる

アプリの作成方法

アプリを作成する方法として、4パターンの方法が提供されています(2017.10現在)。
名称特徴
Action SDK自分でAction、Fulfillmentの定義を指定されているJSON形式で登録する方法。簡単なアプリにおいては十分だが複雑なアプリでは難しい
Dialogflow(旧API.AI)Action SDKの機能をWeb上でラップし、より簡単に登録できるようにしたサービス。DialogflowとActions on Googleを連携させるための追加設定が必要
Converse.AIチャットBotを作成するためのSaaS
テンプレートGoogleによりアプリのひな形が提供されているため、それをベースに作成する

プロジェクトの設定

  1. 「Actions on Google」のコンソールにログイン

  2. 使用するGoogle Cloud Platformを新規で作成するか、既存のものを使用するか選択
  3. Project nameをクリックすると、既存のプロジェクト一覧が表示されるので、そのいずれかを選択するか、それらを無視して入力欄に存在しないプロジェクト名称を入力することで新規プロジェクトが生成されます。
    またCountry/regionは「United States」でなくても問題ないです。

  4. プロジェクトを選択すると、Actionの追加を行う必要があるので、「ADD ACTIONS」ボタンを押下

  5. アプリの作成方法を選択する画面が表示されるので、好きな方法を選択

  6. 2017.10現在、提供されている方法は以下のものとなります。
    詳細な手順については別の機会に記載します。
    • Dialogflow(旧API.AI)
    • Action SDK
    • Converse.AI
    • テンプレート

  7. アプリの情報を登録するために「ADD」ボタンを押下

  8. 押下すると、下のような入力画面が表示されます。
    この中の「Pronunciation」はアプリ名の発音を入力する箇所になりますが、以下のように入力します。また、同じ発音のアプリは登録できないようになっているようです(こちらで確認した限り、アカウントが違うプロジェクトで同一の発音のアプリを登録することもできませんでした)。
    アプリ名発音
    ( `・∀・´)ノヨロシクyo ro shi ku
    言語設定が日本語の場合はひらがなでも記載可能
    また入力した発音は確認できるので、それを確認しておいた方がよいです。「shi」と「si」など日本人的には同じく聞こえる書き方に対して別々に登録できるか確認したとき、発音を確認したら、「エス アイ」といった具合にアルファベットをそのまま読んだときがありました。

  9. アプリの対象とする地域を変更(オプション)
  10. デフォルトで全地域が対象になっているので、対応できる地域に絞ることができます。



  11. アプリの結果出力において、音声・表示が必要か否かの変更(オプション)
  12. アプリの結果出力の際に以下の出力方法が必要か否かを変更することができます。これにより対応できるデバイスが変更されます。
    出力先概要備考
    音声Assistantアプリに歌や特別なトーンの再生を行わせたい場合に有効にする必要がある本オプションを有効にすると「Allo」が本アプリの動作可能端末ではなくなる
    スクリーン表示Assistantアプリに写真などの表示を行わせたい場合に有効にする必要がある本オプションを有効にすると「Google Home」が本アプリの動作可能端末ではなくなる



  13. アカウントとの結合
  14. 本アプリを使用しているユーザのGoogleアカウントに結合させたい場合に、OAuth 2.0の認可コードフローかインプリシットフローのいずれかで認証を行うことが出来るようになっています。その際の設定を行う箇所となります。ユーザのGoogleアカウントに結合させる必要がない場合は何も設定する必要はないです。

  15. 試しに動かしてみる
  16. 設定が完了したので、試しに動作するかを確認してみます。
    Google Assistantのイメージだとしゃべりかける必要がありそうに見えますが、今回設定したActions on GoogleへのAPIはJSONなので、Web上から確認することが可能となっています。
    「Actions on Google」のプロジェクト画面に戻り、ページ下部の「TEST DRAFT」ボタン、またはページ左側の「Simulator」リンクを選択するとシミュレータ画面に遷移します。
    シミュレータに遷移すると、以下のような画面が表示されるので、まず、アプリを呼び出すために
    日本語設定時: [アプリ名称(日本語名称)]につないで
    英語設定時: Talk to [アプリ名称(英語名称)]
    
    と以下のように入力すると、設定がうまく言っていれば、アプリが起動してきます。
    日本語英語
    アプリ起動時
    アプリ起動後
    上のアプリを起動したときに、「こんにちは!」とか応答が返ってきますが、こちらはアプリ起動時に発生するWelcome Intentに登録されている文言が返却されています。
    アプリが英語に対応していないとき、最初にシミュレータを起動するときにエラーが発生してシミュレータの起動に失敗することがあります。どうもシミュレータの最初の起動時は言語設定が英語になっているのに対して、アプリが英語に対応していない場合に発生するようです。
    その場合はアプリを英語対応してから再度シミュレータの起動を試みましょう。

次回より、アプリを作成する際の手順について記載していきます。

コメントの投稿