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.

Alexa Gadgets Toolkitから広がるVUIの可能性

371 views

Published on

AAJUG京都 スキル企画・開発アドバンスド 2019-11-09

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Alexa Gadgets Toolkitから広がるVUIの可能性

  1. 1. Alexa Gadgets Toolkitから広がるVUIの 可能性 2019-11-09 AAJUG京都 スキル企画・アドバンスド Masami Yamate
  2. 2. Who are you 山手 政実 Masami Yamate 株式会社 LIFULL 所属 ※最近転職しました LIFULL Home’s iOSエンジニア 人との対話に近づけるため、 Alexaを技術目線で日々Hack中.... 前職:とある公共交通系サービスの会社 Alexa日本サービス開始に合わせて、 1人でスキルを開発し、サービスイン 2年ほど交通情報系Alexaスキルを運営した経験あり
  3. 3. Alexa Gadgets Toolkitとは? A.ユーザー独自のAlexa Gadgetを開発できるツール + =
  4. 4. 何ができるの? A.Echoデバイスと連動してガジェットを操作できる 1. Alexaスキルからガジェットを制御する 2. Alexaネイティブ機能に合わせてガジェットを制御する オリジナルの Echo Buttonを作ったり… 再生中の音楽のテンポデータを使って 踊る人形を作ったり…
  5. 5. スキル開発者は何ができる? スキルからガジェットを動かしたり、ガジェットから受け取った 情報を元にAlexaから能動的に返答することが可能になった ゲーム終了まで 残り3分です ※ゲームスキルが起動している状態として
  6. 6. 能動的
  7. 7. ��
  8. 8. 本日の本当のテーマ Gadgetを使わずに、Alexa Gadgets Toolkitを使うことで生まれる スキル体験の可能性
  9. 9. 今まで Alexa 〇〇を開いて 問題!〇〇の答えは?
  10. 10. 今まで んー…
  11. 11. 今まで Alexa、答えは〇〇!
  12. 12. 今まで わかりませんでした ごめんなさい
  13. 13. 今まで わかりませんでした ごめんなさい セッション切れで、スキルを立ち上げ直さないと続けられない • Audioタグを使うことで4分までセッションを維持することができた
  14. 14. これから Alexa 〇〇を開いて 問題!〇〇の答えは?
  15. 15. これから んー… 答えるの遅いー ※Gadget内部で返答時間を管理している前提
  16. 16. これから (間に合わなかった!) 次の問題にいきます!
  17. 17. これから わかりませんでした ごめんなさい Alexaが能動的に話すことができるので、 より「人に近い対話」を行えるスキル開発が可能になる
  18. 18. セッション持続時間(1) ✔ 通常:8秒 ✔ Audio tag:240秒 • ゲーム系スキルでは、Audio tagを活用しセッション時間を • 伸ばすテクニックがよく見られた。 • Audio playerを活用することで、擬似的なセッション永続化は • 可能であった。
  19. 19. セッション持続時間(2) ✔ Alexa Gadgets Toolkit:90秒 Alexa Gadgets Toolkitでもセッション持続時間はある Gadgetからのアクションで発話されることが可能なので… 持続時間内に定期的にGadgetから永続処理をスキルにリクエストし、 リクエストを元に空返答にガジェットのイベントリスナーを付与することで セッションを永続化することが可能になった
  20. 20. DEMO

  21. 21. 仕組み Alexa、チンベルで 5分間のセッションを開始して セッションを 開始します
  22. 22. 仕組み Namespace:Custom.ChinBell Name:Start Payload: {date: <unixtime>} Alexa gadgetにEventを送付する スキルからセッション終了時刻をGadgetに送付する Gadget側でセッション経過時間の監視を開始する
  23. 23. 仕組み Namespace:Custom.ChinBell Name:Skillhandler Payload: {} スキル側で監視してるEventをgadgetから送付
  24. 24. 仕組み 無言 このときに無言の応答に再度イベントハンドラーを付与して 返却する
  25. 25. 仕組み GadgetからのEventを送付、Payloadに含まれるstatusの値を元に セッション終了のレスポンスを発話させる Namespace:Custom.ChinBell Name:Skillhandler Payload: {status: end} スキル側で監視してるEventをgadgetから送付
  26. 26. 仕組み セッション終了です お疲れ様でした 最後は通常の発話で終了
  27. 27. Alexa Gadgets Toolkit 辛いとこ (1) •エラーの切り分けがより複雑になる • Skill scriptなのかGadget scriptなのか、それとも送付するDirectiveの問題なのか • Cloud watchで捕捉できるエラーなら「SkillのScript」 • Gadget側で捕捉できるエラーなら「GadgetのScript」 • 上記2つでなければ、gadgetとskillでやり取りするDirectiveのフォーマット
  28. 28. Alexa Gadgets Toolkit 辛いとこ (2) •キャメルケースとスネークケース • Node.jsはキャメルケース • Pythonではスネークケース - Node.js Send Directive - { type: 'CustomInterfaceController.SendDirective', header: { name: Custom.ChinBell, namespace: Start }, endpoint: { endpointId: endPointId }, payload: {} } - Python Handler method - def on_custom_chinbell_start(self, directive): # なんか色々やる
  29. 29. Alexa Gadgets Toolkit 辛いとこ (3) •日本ではストア公開スキルの前例がまだないらしい • 審査をどうやるか… • Gadget側のscriptをオープンソースにするとか…
  30. 30. Alexa Gadgets Toolkitで広がるVUI体験 •Alexaをより人に近づけることができ、人 対 Alexaの会話を リッチにすることができる  → これによりスキルが持つ世界観にユーザーを引き込むことが できる •声で操作できるGadgetを作れるようになっただけではない!

×