1 of 46

Actions on Googleについて

山口 能迪 (@ymotongpoo)

2 of 46

自己紹介

  • 山口 能迪 (やまぐち よしふみ)
  • Developer Advocate, Google Japan
  • Actions on Google、AMP/PWA、Android、Tango、Go

  • Arch Linux、i3wm、ErgoDox、自作キーボード

3 of 46

今日話すこと

  • 音声対話型アプリケーションに期待されるもの
  • Google アシスタント と Actions on Google について
  • Dialogflowの機能概要

4 of 46

今日話すこと

  • 音声対話型アプリケーションに期待されるもの
  • Google アシスタント と Actions on Google について
  • Dialogflowの機能概要

5 of 46

VUIアプリに期待されるもの

6 of 46

VUIアプリケーションに期待されるもの

VUI = Voice User Interface

  • そもそも人間はなぜ道具を使うのか
  • 各種デバイスでのアプリケーションの特徴
  • スマートスピーカーの特徴
  • VUIアプリケーションに期待されるもの

7 of 46

なぜ道具を使うのか

8 of 46

目的を早く・楽に達成したい

何かを知りたい

どこかへ行きたい

何かを買いたい

9 of 46

各種デバイスでの特徴

10 of 46

デスクトップアプリケーション

11 of 46

モバイルアプリケーション

12 of 46

ウェアラブルデバイスアプリケーション

13 of 46

スクリーンデバイスアプリケーション

14 of 46

音声対話型デバイスの特徴

15 of 46

スマートスピーカー

16 of 46

スクリーンがある場合

カルーセル

サジェスチョンチップ

リスト

17 of 46

VUIしかない場合

  • 出力結果が直列でしか取得できない
  • 出力結果を確認するまでの時間が長くなる

eg. 電話での自動音声オペレーター

18 of 46

ステップを減らす努力が必要

ステップを1つ重ねるごとに 20%のユーザーが離脱

19 of 46

対話型になると人間との会話を想定

20 of 46

ユーザーのコンテキストを汲む必要性

21 of 46

今日話すこと

  • 音声対話型アプリケーションに期待されるもの
  • Google アシスタント と Actions on Google について
  • Dialogflowの機能概要

22 of 46

Google アシスタント と

Actions on Google について

23 of 46

Google アシスタント

様々なデバイスから 

呼び出すことができる

※ Android Auto, Android TVは実装中

24 of 46

Google アシスタント と Actions on Google

Google Home — Google アシスタントを搭載したスマートスピーカー

Google アシスタント — Google との会話により物事の処理をサポートするツール

Actions on Google 外からGoogle アシスタントを拡張する仕組み

25 of 46

Actions on Googleの特徴

  • 呼び出すデバイス本体への3P アプリのインストールの必要はない
  • 音声認識・音声合成は Google アシスタントが担当
  • RPC形式で JSON over HTTP での通信
  • Dialogflowなどを利用することで会話をGUIで作成可能
  • 9ロケールに対応

en_US

fr_FR

fr_CA

en_CA

en_GB

en_AU

de_DE

ja_JP

ko_KR

26 of 46

Actions on Google の呼び出しフロー (直連携の場合)

「OK Google, おうちアプリと話す」

Google Home

Google アシスタント

webhook

音声認識 (STT)

NLP

ナレッジグラフ

MLランキング

ユーザー情報

音声合成 (TTS)

おうちアプリ呼び出し

「はい、おうちアプリです」

「こんにちは、おうちアプリです。あなたのおうちのサポートをします。」

音声認識 (STT)

「エアコンをつけて」

音声合成 (TTS)

「エアコンをつけました」

27 of 46

Actions on Googleアプリを開発するには?

  • Googleアシスタントは音声認識、音声合成のみを担当
  • 渡される文字列情報だけでは会話処理をするのは大変
    • 形態素解析
    • 文脈の処理

→自力でやりたくないですよね?

28 of 46

今日話すこと

  • 音声対話型アプリケーションに期待されるもの
  • Google アシスタント と Actions on Google について
  • Dialogflowの機能概要

29 of 46

Dialogflow機能概要

30 of 46

Dialogflow

31 of 46

Dialogflowの利点

  • ユーザーの入力と Intent の対応をGUIで設定することができる
  • 形態素解析もサービス内エンジンで処理
  • ユーザーの入力と Intent への割り振られ方の履歴から再割り振りを行い、Agentの学習を継続的に行うことができる
  • 必要となれば Fulfillment として外部のサーバーから取得したデータを返答に含めることが可能

32 of 46

Actions on Google の呼び出しフロー(Dialogflowを使う場合)

「OK Google, おうちアプリと話す」

Google Home

Google アシスタント

Dialogflow

webhook

音声認識 (STT)

NLP

ナレッジグラフ

MLランキング

ユーザー情報

音声合成 (TTS)

おうちアプリ呼び出し

「はい、おうちアプリです」

「こんにちは、おうちアプリです。あなたのおうちのサポートをします。」

音声認識 (STT)

「エアコンをつけて」

音声合成 (TTS)

「エアコンをつけました」

33 of 46

Dialogflowのメイン画面

34 of 46

Intent - Intent名

Dialogflowコンソール内で使われる名前

e.g. recipe-recommendation

35 of 46

Intent - ユーザーの入力

“user says” のフレーズ群で起動

e.g. “おなかが空いたのでレシピを教えて”

36 of 46

Intent - Action名

  • webhookに渡される名前
  • 複数のインテントで同じアクション名を共有可能
  • Googleアシスタントの"Action"とは別の意味なので注意

37 of 46

Intent - Input/Outputコンテキスト

  • あるIntentが起動されるために必要な条件として設定可能
  • 通常フロー制御に使う

38 of 46

Intent - Entityの設定

  • ユーザーのフレーズ内に特定の種類の値を指定することが可能
  • パラメーター名と型を指定可能
  • 固定値のリストからの値に限定することも可能

39 of 46

Intent - Entity

重要:

複数の種類の “user says” フレーズを作成しておくこと

40 of 46

Entity

Entityに関連する値をsynonym込みで設定可能

41 of 46

Entity - プロンプト

ユーザーのクエリ内で必須Entityが含まれていなかった場合に、フォローアップの質問を投げられる

42 of 46

Webhook (Fulfillment) - Inline Editor (Cloud Functions for Firebase)

Inline Editorで直接 Cloud Functions for Firebase のコードが書ける

43 of 46

Webhook (Fulfillment) - HTTP Postで直連携

44 of 46

今日話したこと

  • 音声対話型アプリケーションに期待されるもの
  • Google アシスタント と Actions on Google について
  • Dialogflowの機能概要

45 of 46

どんどん機能追加されてます

46 of 46

参照情報

AoG概要: goo.gl/ggzn4b

ドキュメント: developers.google.com/actions

Dialogflowを使ってみる: dialogflow.com/google-assistant

開発者コミュニティ: g.co/actionsdev

メーリングリスト: assistant.google.com/developer

その他ツール等: developers.google.com/actions/tools/