Google Home でハローワールド

Google Homeでハローワールドを作ってみた
2018.08.21

渡辺です。 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アシスタントは、用語が複雑なのがネックですが、拡張性がよく考慮されたプラットフォームです。 簡単な雑学スキルであれば、コーディング不要なので、早速作ってみましょう。