Google Home でハローワールド
渡辺です。 Actions on Googleの最初のエントリーがアカウントリンクとかマニアックで反省しています...。 今日はGoogle Homeのハローワールドを解説しますw
ActionsはAlexaでいうところのスキルに相当します。 スキルとの違いや共通点もあわせて説明します。
Actions と Google Assistant と Google Home
Actions on Google, Google Assistant, Google Home などと、たくさんの用語がでてくるのがActions on Googleのとっつきにくさです。 理解してしまえば簡単なことなので、簡単に整理しておきましょう。
Google Assistant
Google Assistant(以下、Assistant)は、スマフォアプリなどでも見かけたことあるかと思います。 Assistantは、Googleの提供するAIアシスタントです。 音声だけでなくテキストも含め、自然言語の解釈と相互会話を行うためのプラットフォーム です。
Actions on Google
Actions on Google(以下、Actions)は、Assistantを拡張するための仕組みです。 簡単に言えば、 Assistantで動くアプリケーション を定義します。 ユーザはAssistantの基本機能に加え、Actionsとして提供される追加機能を利用できます。 つまり、ActionsはAlexaのスキルに相当します。
Google Home
Google Home(以下、Home)は、 AssistantをプラットフォームにしたAIスピーカー です。 AIスピーカーなので、UIは音声に限定されますが、Assistantと同様にActionsを利用できます。 Alexaであれば、Amazon Echoシリーズが相当します。
つまり、Google HomeはGoogle AssistantをプラットフォームとしたAIスピーカーで、拡張機能Actions on Gooleとして提供します。
Dialogflow
Home, Assistant, Actionsと、既に3つも用語が出てきて混乱していると思いますが、さらにもうひとつ「Dialogflow」を追加します。 Dialogflowは、Actionsを更に抽象化した仕組みです。
Home, Assistant, Actionsは、あくまでGoogleプラットフォームの中で、AIアシスタントを提供します。 しかし、AIアシスタントを、FBメッセンジャーなど他のインターフェイスで使いたいとなるでしょう。 そこで、Googleでは、AIアシスタントをDialogflowとして抽象化し、Actionsをひとつのインターフェイスにしています。 このインターフェイスは、DialogflowでIntegrationと呼ばれます。
すなわち、 ActionsとはIntegrationにGoogle Assistantを設定したDialogflow とも言えます。 言い換えると、Actionsの実装はDialogflowとも言えます。 AssistantやFBメッセンジャーがユーザインターフェイス、Dialogflowが実装(プログラミング言語+フレームワーク)と考えても良いかもしれません。
Actionsの作成
それでは、Actionsを作成してみましょう。
https://console.actions.google.com/にアクセスし、Add/import projectをクリックしてください。
プロジェクト名は「hello-world」としました。 言語に「Japanese」、地域に「Japan」を指定することを忘れないようにしてください。
なんか英語で説明が表示されますが、SKIPしていいでしょう(:p
Invocationの設定
Invocationは、Actionsを呼び出す時の設定で、Alexaスキルの起動名と同様の概念です。 Invocationメニューを選択し、Display Nameを設定します。
ここでは、「マイハローワールド」と設定しました。 これで、このActionsは「OK Google, マイハローワールドにつないで」と言うことで起動することになります。 なお、起動名がコンフリクトするとエラーとなるので注意しましょう。
Actionの追加
Actions(複数系/アプリ)にAction(単数形/機能)を追加します。 ActionはAlexaスキルのインテントに対応する概念ですが、インテントよりも抽象的な概念で、インテントなどの機能をActionsに追加します。 ここでは、シンプルなインテントを追加してみましょう。
Actionsメニューを選択し、ADD YOUR FIRST ACTIONをクリックします。
Custom intentを選択し、BUILDをクリックします。
Custom intentの概念はAlexaスキルと似ていますが、より汎用的な仕組み「Dialogflow」で定義します。 はじめに言語とタイムゾーンを指定してください。
CREATE INTENTでインテントを作成します。
Training phrasesに「こんにちは」を追加しましょう。
Training phrasesは、Alexaスキルのサンプル発話に相当します。 Training phrasesに登録されたフレーズからAIが反映され、似た言い回しのフレーズに反応するあたりはAlexaスキルと同様です。 多くのTraining phrasesを追加することと良いでしょう。
Responsesに「はい、さようなら」を追加しましょう。
Alexaスキルでは、レスポンスを返すにはLambdaを実装する必要があります。 DialogFlowでは、単純にレスポンスを返すだけであれば、コーディングは不要です。 設定画面からResponseを追加すればOKです。 複数のResponseを設定した場合は、ランダムに返します。 つまり、単純な雑学スキルであればコーディングは不要です。
また、「Set this intent as end of coversation」にチェックを入れました。 この設定を行うと、このインテントが起動した後、会話が終了します。
Integrationsの設定
最後にDialogflowのIntegrationsを設定します。 Dialogflowもまた、様々なプラットフォームに対応できる仕組みなっており、Google Assistant以外のインターフェイスにも対応可能になっています。 今回はAssistantの設定を行うので、Integrationsメニューを選び、AssistantのINTEGRATION SETTINGをクリックします。
開発中は設定が即時反映される方が便利なので、Auto-preview changes にチェックを入れましょう。
動作確認
Actionsは自分のGoogle Homeで利用するならば、リリースや審査などの手順は不要です。 さっそく利用してみましょう。
簡単にハローワールドが動きました。 Home(端末)を持っていない場合は、Actionsのシミュレータでも確認できますし、Google Assistantでも確認出来ます。
まとめ
GoogleのAIアシスタントは、用語が複雑なのがネックですが、拡張性がよく考慮されたプラットフォームです。 簡単な雑学スキルであれば、コーディング不要なので、早速作ってみましょう。