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

>100 Views

February 14, 18

スライド概要

Alexa Day 2018 のセッション資料

https://alexaday2018.jaws-ug.jp/session/271/

profile-image

クラウドで働くIoTおじさん

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

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

2.

市川 純 (Jun Ichikawa) @sparkgene Recruit Marketing Partners infrastructure engineer

3.

Alexa関連の活動 https://jawsug-iot.connpass.com/

4.

Alexa関連の活動 http://sparkgene.hatenablog.com/ https://qiita.com/sparkgene Alexa Voice Serviceの記事執筆

5.

Alexa Skills Kitでプロダクトの可能性を広げる ▸Amazon Alexaとは ▹Alexa Skills Kitの基本 ▸プロダクトのスキル開発 ▹VUIの設計 ▹開発 ▹運用

6.

Amazon Alexaとは

8.

Alexa Voice Service(AVS)は デバイスからAlexaを簡単に利用する為の ▸API群 ▸ドキュメントリソース ▸SDK ▸ハードウエアデベロップメントキット

9.

AVSを利用したサードパーティーEcho ONKYO スマートスピーカー P3 C by GE Sol Raspberry Pi で自作Echo

10.

Alexa Skills Kit(ASK)は Echo等のデバイスに新しい機能を提供する為の ▸セルフサービスの一連のAPI ▸ツール ▸ドキュメント ▸コードサンプル

11.

USで公開されているサードパーティー製Skill

12.

国内で公開されているサードパーティー製Skill 商品 の 注文 車を 呼ぶ 銀行 の 利用 お店 の 情報 まなび 家電 を 操作 ニュース

13.

Alexa Skills の種類 ▸カスタム対話モデル ▸スマートホームスキル ▸フラッシュブリーフィング ▸ビデオスキル(日本未対応)

14.

国内で公開されているサードパーティー製Skill 商品 の 注文 車を 呼ぶ まなび 家電 を 操作 スマートホームAPI カスタム対話モデル 銀行 の 利用 お店 の 情報 ニュース フラッシュブリーフィ ングAPI

15.

フラッシュブリーフィング ▸HTTPSで利用できるRSSフィードがあれば、5分で作れる ▸オーディオデータを含めることが出来る ▸Echo Showの様にディスプレイがあれば動画も再生可 アレクサ、今日のニュースは? フラッシュニュースです。〜〜〜〜 https://developer.amazon.com/ja/alexa-skills-kit/flash-briefing

16.

スマートホームスキル ▸呼出し名が不要なので、自然な発話でスマートホームの 操作が可能 ▸「アレクサ、リビングの照明をつけて」のような発話で利用 できる ▸デバイスがクラウドで管理されている必要がある アレクサ、リビングの照明をつけて はい https://developer.amazon.com/ja/alexa/smart-home

17.

Alexa Skillの基本 (カスタム対話モデル)

18.

スキルの実行 アレクサ、ゼクシィキッチンを 開いて ゼクシィキッチンへようこそ! どのようなレシピをお探しですか? 和食のレシピ〜〜

19.

開始フレーズ Alexaで定義されている物 ▸を使って ▸を開いて ▸をスタート ▸を始める ▸を始めて ▸を開始 ▸を再生 アレクサ、ゼクシィキッチン を開いて などなど https://developer.amazon.com/ja/docs/custom-skills/understanding-how-users-invoke-custom-skills.html

20.

ゼクシィキッチンでの発話 アレクサ、ゼクシィキッチンで キャベツと牛肉のレシピを教えて キャベツと牛肉のレシピが、7件 見つかりました。最初の3件を〜

21.

発話がどう解釈されるのか アレクサ、ゼクシィキッチンで牛肉とキャベツのレシピを教えて アレクサ ゼクシィキッチン で 牛肉 と キャベツ のレシピを教えて = 起動フレーズ = 呼び出し名 = つなぎの語 = スロット = サンプル発話 = スロット = サンプル発話

22.

呼び出し名 ▸呼び出し名 を言うことで、どのSkillを使うかが決まる ▸呼び出し名 は ウェイクワードや起動フレーズ、 つなぎ語 を含んではならない ▸他にも条件が色々。。 https://developer.amazon.com/ja/docs/custom-skills/choose-the-invocation-name-for-a-customskill.html#invocation-name-requirements

23.

スロット 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

24.

対話モデル

25.

サンプル発話 ▸ OsusumeIntent おすすめのレシピを教えて ▸ SearchIntent {keyword} のおすすめ教えて ▸ SearchMultiIntent {firstkeyword} と {secondkeyword} のレシピを教えて サンプル発話と呼ばれる発話のマッピングを定義します。 上記のような発話をすると、Alexaは一致するインテント名をSkillに対して 送ってきます。 発話の仕方は人それぞれなので、なるべく多くのパターンを網羅することで 認識率は上がる。

26.

インテントスキーマ { "intents": [ { "intent": ”SearchIntent", "slots": [ {"name": ”keyword", "type": ”RECIPE_TYPE" } ] } ] } サンプル発話に定義した発話の構造を定義します。

27.

全体的な流れ アレクサ、ゼクシィキッチンで キャベツと牛肉のレシピを教えて JSON キャベツと牛肉のレシピが、7件 見つかりました。最初の3件を〜 SearchIntent を起動 スロットに firstkeyword=キャベツ secondkeyword=牛肉 ゼクシィキッチン スキル

28.

プロダクトの Skill開発

29.

レシピ動画サービスのSkill対応 https://zexy-kitchen.net/

30.

VUIの設計 ▸目的とユーザーストーリーの設定 ▸台本の作成 ▸対話フローの作成 ▸スキル構築のための準備 https://developer.amazon.com/ja/designing-for-voice/design-process/

31.

今回含めなかったこと ▸アプリのキャラ設定 ・ サービスによっては考えたほうが良い ▸SSMLを使ってより自然な発話を目指す ・ 既存のコンテンツを利用するため、これを全部変換するの は厳しい

32.

目的と ユーザーストーリー の設定

33.

本来は動画でユーザーの負を解決する ゼクシィキッチンはすべてのレシピがプロの解説付きで 動画が見れるのが特徴

34.

動画では解決できない ▸動画を見る ×Echoで動画を見ることは出来ない ▸動画から音声データだけを取り出して再生する ×「これぐらいの焦げ目がついたら〜」のような表現は 音声では余計わからない

35.

スキルの目的 ▸毎日献立を考えるのが大変。そんな時にオススメの料理を 見つけられる ▸料理をつくるのに必要な材料が分かる ▸料理を作るためのおおまかな手順がわかる

36.

ユーザーストーリー ▸毎日献立を考えるのが大変。そんな時にオススメの料理を 見つけられる ・ オススメ、ジャンル、食材などでレシピを探す ▸料理をつくるのに必要な材料が分かる ・ 食材、分量が音声だけではなく、テキストでも確認する ▸料理を作るためのおおまかな手順がわかる ・ 大まかな手順を聞く

37.

台本の作成

38.

レシピを探す台本① アレクサ、ゼクシィキッチンを開いて ゼクシィキッチンへようこそ! どのようなレシピをお探しですか? おすすめのレシピ、和食のレシピ、鶏肉のレシピ おすすめのレシピ おすすめのレシピは全部で5個見つかりました。 レシピを5個紹介します。 1番、ホイコーロー ・・・・・

39.

レシピを探す台本② アレクサ、ゼクシィキッチンでおすすめのレシピを 教えて アレクサ、ゼクシィキッチンでキャベツと牛肉を使 ったレシピを教えて アレクサ、ゼクシィキッチンで栗原心平のレシピを 教えて アレクサ、ゼクシィキッチンで何を作ればいい

40.

対話フローの作成

41.

スキル起動のフロー① アレクサ、 ゼクシキッチンを開いて ゼクシィキッチンへようこそ 前回のセ ッションが ある どのようなレシピをお探しですか? おすすめ、もしくは和食、鶏肉のように 言ってください。 No Yes リジューム {keyword} のレシピは見つかり ませんでした。ほかのキーワード で探してみてください。 キーワード発話 No レシピ見 つかった Yes レシピ一覧

42.

スキル起動のフロー② アレクサ、 ゼクシキッチンで キャベツと牛肉を使った レシピを教えて {keyword} のレシピは見つかり ませんでした。ほかのキーワード で探してみてください。 No レシピ見 つかった Yes レシピ一覧

43.

ユーザーのセッションはどう扱うか ▸Alexaは、repromptを合わせても、十数秒程度しかセッション を維持しない ▸気になるレシピにたどり着いたあと、食材や手順を聞いてい る時に、料理していたらセッションをずっと維持することは出 来ない

44.

ユーザーのセッションはどう扱うか ▸Alexaは、repromptを合わせても、十数秒程度しかセッション を維持しない ▸気になるレシピにたどり着いたあと、食材や手順を聞いてい る時に、料理していたらセッションをずっと維持することは出 来ない 永続的なデータベースに独自の セッション情報として保持する

45.

スキル構築 のための準備

46.

このスキルに必要な機能(インテント)は? ▸レシピの検索 ▸レシピの詳細を聞く ▸手順を聞く ▸食材を聞く

47.

レシピの検索インテント ▸おすすめのレシピを教えて ▸和食のレシピを教えて ▸牛肉のレシピを教えて ▸牛肉とキャベツのレシピを教えて ▸栗原心平のレシピを教えて

48.

レシピの検索 ▸おすすめ のレシピを教えて ▸和食 のレシピを教えて ▸牛肉 のレシピを教えて ▸牛肉 と キャベツ のレシピを教えて ▸栗原心平 のレシピを教えて キーワードだけ違う キーワードの個数が 違う

49.

レシピの検索 ▸{スロット} のレシピを教えて ▸{スロット} と {スロット} のレシピを教えて キーワードをスロットにすることで、様々な キーワードを使った検索に対応出来る

50.

インテントを呼ぶ発話のバリエーションを増やす ▸{スロット} のレシピ ▸{スロット} のレシピを教えて ▸{スロット} の作り方 ▸{スロット} の作り方が知りたい ▸{スロット} はどうやって作るの ▸{スロット} を使いたい ▸{スロット} が余ってる ▸オススメの {スロット} はなに 思いつく限りの発話を登録することで、 ユーザーがどのように話しかけても 反応しやすくなる

51.

開発

52.

Skillの開発 カスタムスキルの場合、2つの方法でスキルを作れます ▸AWS Lambda Functionを使う ▸自分でホストする

53.

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

54.

自分でホストする場合 ▸ ネット接続されている必要がある ▸ 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

55.

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

56.

Alexa Skills Kit CLI ▸ Alexa Skills Kitコマンドラインインターフェース(ASK CLI) https://developer.amazon.com/ja/docs/smapi/ask-cliintro.html ▸ ただ、日本語の対応がまだ途中。。

57.

複数の環境を用意 一般ユーザー 開発者 本番用 開発用

58.

テスト ▸ デベロパーコンソール ▹ サービスシミュレータ ▹ テストシミュレータ ▸ Echosim ▹ https://echosim.io

59.

運用

60.

利用状況をチェックしましょう

61.

利用状況をチェックしましょう(インテント)

62.

利用状況をチェックしましょう(キーワード) キーワード 1 ありが 2 鶏肉 3 人気 4 ゼクシィキッチン 5 和食 6 音楽 7 エコー 8 豚肉 9 アマゾン 10 ゼクシィキッチン 今日 11 牛肉 12 もやし 13 夕食 14 とうふ 15 もういい SLOTに無いワードも くることが多い

63.

まとめ

64.

プロダクトのスキル開発 ▸VUIの設計は、実際に台本を書いて、声に出しながら試して みると、使いやすいかどうか見えてくる ▸なるべく多くのサンプル発話を登録しておくことで、ユーザー の発話に対して反応しやすくなる。 ▸利用状況を継続してモニタリングして、使い勝手を改善しまし ょう ▸フラッシュブリーフィング簡単なので、まずはこれからでも

65.

ありがとうございました Question?