Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure Functions で Google Home, Amazon Echo, LINE Clova スキル開発 #decode19

2,745 views

Published on

de:code 2019 で登壇した内容です

Published in: Technology
  • Be the first to comment

Azure Functions で Google Home, Amazon Echo, LINE Clova スキル開発 #decode19

  1. 1. Ask the Speaker 写真撮影 動画撮影 セッション資料 後日公開 Twitter ハッシュタグ CM13 Google Home や Amazon Echo、LINE Clova の 自作スキル開発! Azure Functions でクロス プラットフォーム開発入門 Cloud Developer Advocate 千代田まどか(ちょまど) #decode19 #CM13
  2. 2. 登壇者紹介 (10秒):千代田まどか ちょまど プログラマ • エンジニア兼マンガ家
  3. 3. 私の描いた絵
  4. 4. 私が描いている漫画 「はしれ!コード学園」
  5. 5. フォロワーは 5万9千人 超えました! Twitter : @chomado
  6. 6. 今日の目標 スマートスピーカーに 好きなことを喋らせる Amazon Alexa, Google アシスタント, LINE Clova 全部を、 コード共通化しながら 効率良く開発
  7. 7. 明日の スケジュールを教えて 明日午前9時から、 『マイクロソフト作戦会議』が あります 場所は 『会議室28-5』です
  8. 8. デモ:Office 連携「秘書さん」 やること: 1. Office 365 の Outlook で予定確認 2. Google Home で実演 3. LINE Clova Friends で実演 4. スマホに LINE message 通知 5. Amazon Alexa シミュレーター 6. Visual Studio でのデバッガー確認
  9. 9. コードは全て公開しています
  10. 10. [Agenda] 今日お話しする内容 概要 Messaging API Graph API) 対話モデル バックエンド
  11. 11. [Agenda] 今日お話しする内容 概要 Messaging API Graph API) 対話モデル バックエンド
  12. 12. 「スマートスピーカー」とは? AIアシスタントの載った、 ネットに無線で繋がる機能を持つ スピーカー
  13. 13. 製造元 スピーカー製品名 内蔵AIアシスタント 米国発売年 × アナウンス日 〇 実際の発売日 Amazon Echo Amazon Alexa 2014年 〇 済 Google Home Google アシスタント 2016年 〇 済 Clova WAVE, Clova Friends Clova 2017年 〇 済 Harman Kardon INVOKE Microsoft Cortana (コルタナさん) 2017年 × 未定 Apple HomePod Siri 2018年 × 未定
  14. 14. Google アシスタントとは • Google の AI アシスタント • スマホでも時計でも車でも スピーカーでも動く
  15. 15. Google アシスタントとは • Google の AI アシスタント • スマホでも時計でも車でも スピーカーでも動く Googleアシスタントの載った スマートスピーカー
  16. 16. Google Home が喋る概要 Google Home Googleアシスタント Google アシスタントが 動いてる Actions 呼ばれる /アシスタントが 実行する
  17. 17. LINE Clova Friends が喋る概要 Clova Friends LINE Clova が 動いてる Skill 呼ばれる /アシスタントが 実行する LINE Clova
  18. 18. Clova が「既に知っている」コマンドを呼んだ時 「品川区の今日の天気は何で すか?」 (声) 【Speech to Text】 “品川区の今日の天気は何です か?”って言った (文字列) 【intent (意図)を理解】 ご主人様は品川区の天気を知りたいらし い。Weather Service を呼ぶか Weather Service 「今日は晴れです」 LINE の AIプラットフォーム デバイス ユーザー Clova のスキルたち
  19. 19. Clova が「知らない」コマンドを呼んだ時 「ちょまどスキルに繋いで」 (声) 【Speech to Text】 “ちょまどスキルに繋いで”って言っ た (文字列) は? "ちょまどスキル"? そんなサービス知らんわ。そんなの見つからなかった。 マジで何したらいいのか分からん。 エラーメッセージ返しとくわ 「すみません、 わかりませんでした」 LINE の AIプラットフォーム デバイス ユーザー Clova のスキルたち
  20. 20. LINE の AIプラットフォーム デバイス ユーザー Clova のスキルたち 好きなことを喋らせるには 自分でオレオレ スキル (Extension) を 作れば良さそう!
  21. 21. LINE Clova アプリ(Extension)開発 全体像 占って 大吉です LINE の AIプラットフォーム Microsoft の サーバーレスのサービス Azure Functions HTTP リクエスト JSON LINE の 自然言語処理サービス。 対話モデル(何と言われ たら何と返す)を作る
  22. 22. LINE Clova アプリ(Extension)開発 全体像 占って 大吉です LINE の AIプラットフォーム Microsoft の サーバーレスのサービス Azure Functions HTTP リクエスト JSON LINE の 自然言語処理サービス。 対話モデル(何と言われ たら何と返す)を作る 対話モデル作成では 自然言語処理の知識が 少しだけ必要
  23. 23. [Agenda] 今日お話しする内容 概要 Messaging API Graph API) 対話モデル バックエンド
  24. 24. 自然言語処理の前提知識 「Intent」「Entity (slot)」 意図 もの
  25. 25. たとえば Intent (意図):MeetingRequestIntent (会議予約) Utterance (発話) Entity「13時」 type: time Entity「1時間」 type: duration Entity「千代田」 type: @sys.any
  26. 26. たとえば Intent (意図):MeetingRequestIntent (会議予約) Utterance (発話) Entity「13時」 type: time Entity「1時間」 type: duration Entity「千代田」 type: @sys.any
  27. 27. 対話モデル作成に使う自然言語処理サービス • Google Assistant : Dialogflow, Microsoft LUIS • LINE Clova : Clova Extentions Kit • Amazon Alexa : Alexa Skills Kit どの自然言語処理サービスにも Intent / Entity (Slot) の概念がある
  28. 28. Google Assistant 向け 対話モデル作成 の画面 対話モデル作成に使う自然言語処理サービス • Google Assistant : Dialogflow, Microsoft LUIS • LINE Clova : Clova Extentions Kit • Amazon Alexa : Alexa Skills Kit
  29. 29. Google Assistant 向け 対話モデル作成 の画面 対話モデル作成に使う自然言語処理サービス • Google Assistant : Dialogflow, Microsoft LUIS • LINE Clova : Clova Extentions Kit • Amazon Alexa : Alexa Skills Kit 明日 17:40 からの共同登壇セッション 『既存サービスをAIアシスタント対応する際の勘 所』にて解説
  30. 30. LINE Clova 向け 対話モデル作成 の画面 対話モデル作成に使う自然言語処理サービス • Google Assistant : Dialogflow, Microsoft LUIS • LINE Clova : Clova Extentions Kit • Amazon Alexa : Alexa Skills Kit
  31. 31. Amazon Alexa 向け 対話モデル作成 の画面 対話モデル作成に使う自然言語処理サービス • Google Assistant : Dialogflow, Microsoft LUIS • LINE Clova : Clova Extentions Kit • Amazon Alexa : Alexa Skills Kit
  32. 32. デモ: 実際に対話モデルを作ってみよう! 「Google Home に 好きなことを言わせる」
  33. 33. 作ってみよう!① 起動時の応答 Default Welcome Intent オーケーグーグル、 『ハローグーグルホーム』に 繋いで こんにちは、ちょまどさん。 今日も素敵な笑顔ですね
  34. 34. 作ってみよう!② 意図の理解Praise Intent 私を褒めて ちょまどさんはすごい! さすが社長!
  35. 35. 作ってみよう!③ アプリを終了させるEndIntent ばいばい さらばだ。 (ピコン!)
  36. 36. 『対話モデル構築』 Google 編のおさらい Dialogflow Microsoft LUIS (両方とも ある程度は無料) Default Welcome Intent Training phrases
  37. 37. たしかに会話っぽいの出来てるけど うーん、お決まりの言葉を ただ返してくるだけだと あんまりスマートスピーカー感が 無いなあ もっと便利機能っぽいことや 複雑なことをしてもらいたいなあ
  38. 38. [Agenda] 今日お話しする内容 概要 Messaging API Graph API) 対話モデル バックエンド
  39. 39. バックエンドには Microsoft のサーバレスのサービス Azure Functions を使う
  40. 40. オンプレミス IaaS (一般的な) PaaS サーバレス (これも PaaS の一種/FaaS) クラウド ハードウェア OS ランタイム アプリ (関数呼び出し) 関数 ハードウェア OS ランタイム アプリ (関数呼び出し) 関数 ハードウェア OS ランタイム アプリ (関数呼び出し) 関数 ハードウェア OS ランタイム アプリ (関数呼び出し) 関数
  41. 41. オンプレミス IaaS (一般的な) PaaS サーバレス クラウド ハードウェア OS ランタイム アプリ (関数呼び出し) 関数 ハードウェア OS ランタイム アプリ (関数呼び出し) 関数 ハードウェア OS ランタイム アプリ (関数呼び出し) 関数 ハードウェア OS ランタイム アプリ (関数呼び出し) 関数 呼び出しのきっかけ「トリガー」 トリガー「DB の data テーブルに 新しい項目が増えたら」 →アウトプット「○○ API を叩く&別の テーブルにデータ挿入」 トリガー「HTTPリクエストが来たら」 →アウトプット「来たデータを解析して Office 365 の会議室予約API叩く」
  42. 42. サーバーレス
  43. 43. Azure Functions (C#) での API のエンドポイントの書き方 Dialogflow が叩きに来る API のエンドポイント用。 “https://デプロイしたサーバのURL/api/GoogleHome” HTTP トリガーを指定
  44. 44. オレオレコードを Google Home と繋げる Dialogflow が叩きに来る API のエンドポイント用。 “https://デプロイしたサーバのURL/api/GoogleHome” HTTP トリガーを指定 Google Dialogflow の ポータル画面の “Fulfillment”
  45. 45. オレオレコードを LINE Clova と繋げる CEK が叩きに来る API のエンドポイント用。 “https://デプロイしたサーバのURL/api/Line” HTTP トリガーを指定 LINE CEK の ポータル画面の “開発設定”
  46. 46. オレオレコードを Alexa と繋げる Dialogflow が叩きに来る API のエンドポイント用。 “https://デプロイしたサーバのURL/api/Alexa” HTTP トリガーを指定
  47. 47. 実際のコード(LINE Clova) CEKRequest.AddText(“喋らせたい言葉”) 使ってるSDK: CEK.CSharp リクエストの種類で場合分け
  48. 48. [Agenda] 今日お話しする内容 概要 Messaging API Graph API) 対話モデル バックエンド
  49. 49. 今朝のキーノートでも触れられましたね!
  50. 50. Microsoft Graph は、Microsoft 365と 関連のクラウドサービスに対して、 統一的なAPIを提供するもの
  51. 51. Azure Portal から Active Directory に移動し アプリの登録を行い、各種権限の付与を行う。 (私のアプリが予定表にアクセスできるように)
  52. 52. Clova から LINE へのメッセージの送り方 同じプロバイダーの Clova スキルと Messaging API の チャネルは連携可能 ユーザー ID に Messaging API の プッシュメッセージで メッセージを送れる
  53. 53. LINE へのメッセージの送り方 https://github.com/pierre3/LineMessagingApi
  54. 54. デモ:Office 連携「秘書さん」 やること: 1. Graph API Explorer を見る 2. 実際のコードを見る 1. Microsoft Graph API を叩いているところ 2. LINE Messaging API を叩いているところ
  55. 55. [Agenda] 今日お話しする内容 概要 Messaging API Graph API) 対話モデル バックエンド
  56. 56. 今日の目標 スマートスピーカーに 好きなことを喋らせる Amazon Alexa, Google アシスタント, LINE Clova 全部を、 コード共通化しながら 効率良く開発
  57. 57. おすすめセッション Decode 2019 共同登壇
  58. 58. 新しい世界を創るのは あなたたちです! エンジニアの皆様には 可能性は無限大! VUI (Voice UI)は グングン成長中の市場
  59. 59. © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。 © 2019 Microsoft Corporation. All rights reserved. 本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。 本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

×