Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Alexa Skills Kitでプロダクトの可能性を広げる

315 vues

Publié le

Alexa Day 2018 のセッション資料
https://alexaday2018.jaws-ug.jp/session/271/

Publié dans : Logiciels
  • Soyez le premier à commenter

Alexa Skills Kitでプロダクトの可能性を広げる

  1. 1. Alexa Skills Kitで プロダクトの可能性 を広げる Alexa Day 2018
  2. 2. @sparkgene 市川 純 (Jun Ichikawa) Recruit Marketing Partners infrastructure engineer
  3. 3. Alexa関連の活動 https://jawsug-iot.connpass.com/
  4. 4. http://sparkgene.hatenablog.com/ Alexa Voice Serviceの記事執筆 Alexa関連の活動 https://qiita.com/sparkgene
  5. 5. Alexa Skills Kitでプロダクトの可能性を広げる ▸Amazon Alexaとは ▹Alexa Skills Kitの基本 ▸プロダクトのスキル開発 ▹VUIの設計 ▹開発 ▹運用
  6. 6. Amazon Alexaとは
  7. 7. Alexa Voice Service(AVS)は デバイスからAlexaを簡単に利用する為の ▸API群 ▸ドキュメントリソース ▸SDK ▸ハードウエアデベロップメントキット
  8. 8. AVSを利用したサードパーティーEcho ONKYO スマートスピーカー P3 Raspberry Pi で自作Echo C by GE Sol
  9. 9. Alexa Skills Kit(ASK)は Echo等のデバイスに新しい機能を提供する為の ▸セルフサービスの一連のAPI ▸ツール ▸ドキュメント ▸コードサンプル
  10. 10. USで公開されているサードパーティー製Skill
  11. 11. 国内で公開されているサードパーティー製Skill 商品 の 注文 車を 呼ぶ 家電 を 操作 まなび 銀行 の 利用 お店 の 情報 ニュース
  12. 12. Alexa Skills の種類 ▸カスタム対話モデル ▸スマートホームスキル ▸フラッシュブリーフィング ▸ビデオスキル(日本未対応)
  13. 13. 国内で公開されているサードパーティー製Skill 商品 の 注文 車を 呼ぶ 家電 を 操作 まなび 銀行 の 利用 お店 の 情報 ニュース カスタム対話モデル スマートホームAPI フラッシュブリーフィ ングAPI
  14. 14. フラッシュブリーフィング ▸HTTPSで利用できるRSSフィードがあれば、5分で作れる ▸オーディオデータを含めることが出来る ▸Echo Showの様にディスプレイがあれば動画も再生可 https://developer.amazon.com/ja/alexa-skills-kit/flash-briefing アレクサ、今日のニュースは? フラッシュニュースです。〜〜〜〜
  15. 15. スマートホームスキル ▸呼出し名が不要なので、自然な発話でスマートホームの 操作が可能 ▸「アレクサ、リビングの照明をつけて」のような発話で利用 できる ▸デバイスがクラウドで管理されている必要がある https://developer.amazon.com/ja/alexa/smart-home アレクサ、リビングの照明をつけて はい
  16. 16. Alexa Skillの基本 (カスタム対話モデル)
  17. 17. スキルの実行 アレクサ、ゼクシィキッチンを 開いて ゼクシィキッチンへようこそ! どのようなレシピをお探しですか? 和食のレシピ〜〜
  18. 18. 開始フレーズ Alexaで定義されている物 ▸を使って ▸を開いて ▸をスタート ▸を始める ▸を始めて ▸を開始 ▸を再生 などなど https://developer.amazon.com/ja/docs/custom-skills/understanding-how-users-invoke-custom-skills.html アレクサ、ゼクシィキッチン を開いて
  19. 19. ゼクシィキッチンでの発話 アレクサ、ゼクシィキッチンで キャベツと牛肉のレシピを教えて キャベツと牛肉のレシピが、7件 見つかりました。最初の3件を〜
  20. 20. 発話がどう解釈されるのか アレクサ ゼクシィキッチン で 牛肉 と キャベツ のレシピを教えて = 起動フレーズ = 呼び出し名 = つなぎの語 = スロット = サンプル発話 = スロット = サンプル発話 アレクサ、ゼクシィキッチンで牛肉とキャベツのレシピを教えて
  21. 21. 呼び出し名 ▸呼び出し名 を言うことで、どのSkillを使うかが決まる ▸呼び出し名 は ウェイクワードや起動フレーズ、 つなぎ語 を含んではならない ▸他にも条件が色々。。 https://developer.amazon.com/ja/docs/custom-skills/choose-the-invocation-name-for-a-custom- skill.html#invocation-name-requirements
  22. 22. Slotは変数みたいなもので、事前に期待している言葉を定義する Slotには2種類あり ▸ビルトインタイプ ▸ AMAZON.DATE、AMAZON.NUMBER、AMAZON.Region、 AMAZON.FirstName、・・・・ ▸カスタムタイプ ▹ 自分で定義する ▹ ex) ▹ slot “RECIPE_TYPE” = 和食、洋食、・・・・ スロット https://developer.amazon.com/ja/docs/custom-skills/slot-type-reference.html
  23. 23. 対話モデル
  24. 24. ▸OsusumeIntent おすすめのレシピを教えて ▸SearchIntent {keyword} のおすすめ教えて ▸SearchMultiIntent {firstkeyword} と {secondkeyword} のレシピを教えて サンプル発話 サンプル発話と呼ばれる発話のマッピングを定義します。 上記のような発話をすると、Alexaは一致するインテント名をSkillに対して 送ってきます。 発話の仕方は人それぞれなので、なるべく多くのパターンを網羅することで 認識率は上がる。
  25. 25. { "intents": [ { "intent": ”SearchIntent", "slots": [ {"name": ”keyword", "type": ”RECIPE_TYPE" } ] } ] } インテントスキーマ サンプル発話に定義した発話の構造を定義します。
  26. 26. 全体的な流れ アレクサ、ゼクシィキッチンで キャベツと牛肉のレシピを教えて キャベツと牛肉のレシピが、7件 見つかりました。最初の3件を〜 ゼクシィキッチン スキル SearchIntent を起動 スロットに firstkeyword=キャベツ secondkeyword=牛肉JSON
  27. 27. プロダクトの Skill開発
  28. 28. レシピ動画サービスのSkill対応 https://zexy-kitchen.net/
  29. 29. ▸目的とユーザーストーリーの設定 ▸台本の作成 ▸対話フローの作成 ▸スキル構築のための準備 VUIの設計 https://developer.amazon.com/ja/designing-for-voice/design-process/
  30. 30. ▸アプリのキャラ設定 ・ サービスによっては考えたほうが良い ▸SSMLを使ってより自然な発話を目指す ・ 既存のコンテンツを利用するため、これを全部変換するの は厳しい 今回含めなかったこと
  31. 31. 目的と ユーザーストーリー の設定
  32. 32. ゼクシィキッチンはすべてのレシピがプロの解説付きで 動画が見れるのが特徴 本来は動画でユーザーの負を解決する
  33. 33. ▸動画を見る ×Echoで動画を見ることは出来ない ▸動画から音声データだけを取り出して再生する ×「これぐらいの焦げ目がついたら〜」のような表現は 音声では余計わからない 動画では解決できない
  34. 34. ▸毎日献立を考えるのが大変。そんな時にオススメの料理を 見つけられる ▸料理をつくるのに必要な材料が分かる ▸料理を作るためのおおまかな手順がわかる スキルの目的
  35. 35. ▸毎日献立を考えるのが大変。そんな時にオススメの料理を 見つけられる ・ オススメ、ジャンル、食材などでレシピを探す ▸料理をつくるのに必要な材料が分かる ・ 食材、分量が音声だけではなく、テキストでも確認する ▸料理を作るためのおおまかな手順がわかる ・ 大まかな手順を聞く ユーザーストーリー
  36. 36. 台本の作成
  37. 37. レシピを探す台本① アレクサ、ゼクシィキッチンを開いて ゼクシィキッチンへようこそ! どのようなレシピをお探しですか? おすすめのレシピ、和食のレシピ、鶏肉のレシピ おすすめのレシピ おすすめのレシピは全部で5個見つかりました。 レシピを5個紹介します。 1番、ホイコーロー ・・・・・
  38. 38. レシピを探す台本② アレクサ、ゼクシィキッチンでおすすめのレシピを 教えて アレクサ、ゼクシィキッチンでキャベツと牛肉を使 ったレシピを教えて アレクサ、ゼクシィキッチンで栗原心平のレシピを 教えて アレクサ、ゼクシィキッチンで何を作ればいい
  39. 39. 対話フローの作成
  40. 40. スキル起動のフロー① アレクサ、 ゼクシキッチンを開いて 前回のセ ッションが ある ゼクシィキッチンへようこそ No Yes リジューム レシピ一覧 どのようなレシピをお探しですか? おすすめ、もしくは和食、鶏肉のように 言ってください。 レシピ見 つかった {keyword} のレシピは見つかり ませんでした。ほかのキーワード で探してみてください。 キーワード発話 Yes No
  41. 41. スキル起動のフロー② アレクサ、 ゼクシキッチンで キャベツと牛肉を使った レシピを教えて レシピ一覧 レシピ見 つかった {keyword} のレシピは見つかり ませんでした。ほかのキーワード で探してみてください。 Yes No
  42. 42. ユーザーのセッションはどう扱うか ▸Alexaは、repromptを合わせても、十数秒程度しかセッション を維持しない ▸気になるレシピにたどり着いたあと、食材や手順を聞いてい る時に、料理していたらセッションをずっと維持することは出 来ない
  43. 43. ユーザーのセッションはどう扱うか ▸Alexaは、repromptを合わせても、十数秒程度しかセッション を維持しない ▸気になるレシピにたどり着いたあと、食材や手順を聞いてい る時に、料理していたらセッションをずっと維持することは出 来ない 永続的なデータベースに独自の セッション情報として保持する
  44. 44. スキル構築 のための準備
  45. 45. ▸レシピの検索 ▸レシピの詳細を聞く ▸手順を聞く ▸食材を聞く このスキルに必要な機能(インテント)は?
  46. 46. ▸おすすめのレシピを教えて ▸和食のレシピを教えて ▸牛肉のレシピを教えて ▸牛肉とキャベツのレシピを教えて ▸栗原心平のレシピを教えて レシピの検索インテント
  47. 47. ▸おすすめ のレシピを教えて ▸和食 のレシピを教えて ▸牛肉 のレシピを教えて ▸牛肉 と キャベツ のレシピを教えて ▸栗原心平 のレシピを教えて レシピの検索 キーワードだけ違う キーワードの個数が 違う
  48. 48. ▸{スロット} のレシピを教えて ▸{スロット} と {スロット} のレシピを教えて レシピの検索 キーワードをスロットにすることで、様々な キーワードを使った検索に対応出来る
  49. 49. ▸{スロット} のレシピ ▸{スロット} のレシピを教えて ▸{スロット} の作り方 ▸{スロット} の作り方が知りたい ▸{スロット} はどうやって作るの ▸{スロット} を使いたい ▸{スロット} が余ってる ▸オススメの {スロット} はなに インテントを呼ぶ発話のバリエーションを増やす 思いつく限りの発話を登録することで、 ユーザーがどのように話しかけても 反応しやすくなる
  50. 50. 開発
  51. 51. カスタムスキルの場合、2つの方法でスキルを作れます ▸AWS Lambda Functionを使う ▸自分でホストする Skillの開発
  52. 52. AWS Lambda Functionを使う場合 ▸ サーバを立てる必要がない ▸ SSL証明書を用意する必要が無い ▸ Alexaからのリクエストであることを検証する必要が無い ▸ 呼び出しされた時だけ課金される ▸ Alexaから実行されるときTLSが利用されるのでセキュア ▸ 多くのデベロッパーは無料枠の範囲で済むはず https://developer.amazon.com/ja/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html
  53. 53. 自分でホストする場合 ▸ ネット接続されている必要がある ▸ Alexa Skills KitのI/Fに準拠している必要がある ▸ SSL/TSLに対応している必要がある ▸ Alexaからのリクエストであることを検証する必要がある https://developer.amazon.com/ja/docs/custom-skills/host-a-custom-skill-as-a-web-service.html
  54. 54. Skillの開発を楽にしてくれるなど ▸ Alexa Skills Kit SDK for Node.js ▹ https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs ▸ Alexa Skills Kit for Python ▹ https://github.com/johnwheeler/flask-ask
  55. 55. Alexa Skills Kit CLI ▸ Alexa Skills Kitコマンドラインインターフェース(ASK CLI) https://developer.amazon.com/ja/docs/smapi/ask-cli- intro.html ▸ ただ、日本語の対応がまだ途中。。
  56. 56. 複数の環境を用意 一般ユーザー 開発者 本番用 開発用
  57. 57. テスト ▸ デベロパーコンソール ▹ サービスシミュレータ ▹ テストシミュレータ ▸ Echosim ▹ https://echosim.io
  58. 58. 運用
  59. 59. 利用状況をチェックしましょう
  60. 60. 利用状況をチェックしましょう(インテント)
  61. 61. 利用状況をチェックしましょう(キーワード) キーワード 1 ありが 2 鶏肉 3 人気 4 ゼクシィキッチン 5 和食 6 音楽 7 エコー 8 豚肉 9 アマゾン 10 ゼクシィキッチン 今日 11 牛肉 12 もやし 13 夕食 14 とうふ 15 もういい SLOTに無いワードも くることが多い
  62. 62. まとめ
  63. 63. ▸VUIの設計は、実際に台本を書いて、声に出しながら試して みると、使いやすいかどうか見えてくる ▸なるべく多くのサンプル発話を登録しておくことで、ユーザー の発話に対して反応しやすくなる。 ▸利用状況を継続してモニタリングして、使い勝手を改善しまし ょう ▸フラッシュブリーフィング簡単なので、まずはこれからでも プロダクトのスキル開発
  64. 64. ありがとうございました Question?

×