Amazon AlexaとServerless

>100 Views

September 06, 17

スライド概要

Serverless Meetup Tokyo #5で発表したやつ

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

Amazon Alexaと Serverless Serverless Meetup Tokyo #5

2.

市川 純 @sparkgene Recruit Marketing Partners ▸2014/2 入社 ガテン系→SIer→フリーランス→起業→ オレンジ色のSNS→現在 ▸担当業務 新規事業のインフラ担当(AWS利用)

3.

今日の內容は Serverless成分 少なめです

4.

Amazon Alexa

6.

Alexa Skills Kit

7.

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

8.

公開されているSkill数(US)

9.

Alexa Voice Service

10.

Amazon Echoシリーズ Amazon Echo Echo Tap Echo Show Echo Dot Fire TV Echo Look

11.

アプリにも組み込める iOS/Androidのアプリ ブラウザベースの シミュレータ

12.

ラズパイを使ってEcho自作

13.

Serverlessと どんな関係が?

14.

Alexa Skills Types ▸Custom Skills ▸Smart Home Skills ▸Flash Briefing Skills ▸Video Skill

15.

Skill Type Smart Home Skill Custom Skill Flash Briefing Skill

16.

AWS Lambdaの利用が必須 ▸Custom Skills ▸Smart Home Skills ▸Flash Briefing Skills ▸Video Skill

17.

Alexa Skillには Serverlessな 構成が求められている

18.

Alexa Skillの基本 (Custom Skill)

19.

しゃべったのがどう理解されるのか Alexa, ask Plan My Trip to plan a trip from Seattle to Portland on Friday. Alexa ask Plan My Trip to plan a trip from Seattle to Portland on Friday = wake word = starting phrase = Invocation name = some word = slot = connecting word = slot = connecting word = slot

20.

Starting phrase Ask, Begin, Do, Launch, Load, Open, Play, Play the game, Resume, Run, Start, Start playing, Start playing the game, Talk to, Tell, Use starting phrase は必須ではないです https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/supported-phrases-tobegin-a-conversation

21.

Invocation name ▸invocation name を言うことで、どのSkillを使うかが 決まる ▸invocation name は wake words や launch phrases 、 connecting wordsを含んではならない (Alexa, Amazon, Echo, ask, tell, etc.) ▸他にも色々。。 https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/choosing-the-invocationname-for-an-alexa-skill#invocation-name-requirements

22.

Slot Slotは変数みたいなもので、事前に発話されるだろう、言葉を 定義する Slotには2種類あり ▸ built in type ▸ AMAZON.DATE、AMAZON.NUMBER、AMAZON.US_CITY、 AMAZON.US_FIRST_NAME、etc ▸ custom type ▹ 自作するSlot ▹ ex) ▹ slot “SERVERLESS_MEETUP” = TOKYO, OSAKA, FUKUOKA, .... https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-typereference

23.

Interaction Model

24.

Sample utterance ▸ PlanMyTrip i want to visit {toCity} ▸ PlanMyTrip Plan a trip ▸ PlanMyTrip I'll go to {toCity} on {travelDate} ▸ PlanMyTrip I want to travel from {fromCity} to {toCity} on {travelDate} Sample utteranceと呼ばれる発話のマッピングを定義します。 上記のような発話をすると、AlexaはPlanMyTripというインテントを 呼び出すように、JSONをSkillに送ってきます。 (AlexaとSkillのやり取りはすべてJSON)

25.

Intent Schema { } "intents": [ { "intent": "PlanMyTrip", "slots": [ {"name": "travelDate", "type": "AMAZON.DATE" }, {"name": "toCity", "type": "AMAZON.US_CITY" }, {"name": "fromCity", "type": "AMAZON.US_CITY" } ] } ] Sample utteranceに定義した発話の構造を定義します。

26.

全体の流れ [1] Alexa, ask Plan My Trip to plan a trip from Seattle to Portland on Friday. [2] Invoke PlanMyTrip with toCity=Portland fromCity=Seattle travelDate=September 7 2017 Plan My Trip Skill [4] Audio response [3] Text response

27.

半分まで来ました そろそろ Serverlessな話 が。。

28.

AWS Lambdaの利用が必須 ▸Custom Skills ▸Smart Home Skills ▸Flash Briefing Skills ▸Video Skill

29.

Smart Home Skill

30.

Smart Home Skillの特徴 ▸「Alexa, turn on living light」の様に自然な 発話でデバイスを操作できる ・ただし、決まった発話しかできない ▸デバイスはクラウドで管理している必要があ る ▸Account Linkingが必要

31.

Smart Home Skillの全体像 https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/overviews/understanding-the-smart-home-skill-api

32.

サードパーティー製のスマートホームデバイス Alexaから家電の操作ができる物は数多くリリースされている。 ただし、必ずしもSmart Home Skillを利用しているとは限らない。 https://www.amazon.com/alexa-smart-home/b?ie=UTF8&node=13575751011

33.

自分の家を スマートホーム化 したい!

34.

Smart Home Skillを使って自作する為に必要なもの ▸Amazon Alexaから呼ばれるSkill(Lambda Function) ▸スマートデバイスを管理しているクラウドサービス ▸スマートデバイス

35.

自作スマートホームの構成 デバイス Alexaから呼ばれるLambda デバイスを管理するクラウド

36.

アカウント リンキング Amazon Alexa Alexa App device cloud Enable Skill Login URL Login redirect URL State, Code request token token Linking OK Alexa内で保存

37.

自分しか使わないので、Login with Amazonを使う https://developer.amazon.com/ja/login-with-amazon

38.

デモ動画 https://youtu.be/ap7biLjH_Qc

39.

Smart Home Skillを使った スマートホームのまとめ ▸自作スマートホームであれば、lambda, AWS IoTを利用し てサーバレスな環境で完結する ▸デバイスメーカが実装する場合は、lambdaから自サービ スのAPIを叩いて、デバイスのディスカバリーや、操作を行 う ▸アカウントリンキングはユーザーのAlexaアカウントと自サ ービスのヒモ付で必要なので、OAuthの仕組みも必要 http://qiita.com/sparkgene/items/055d7864c92a80b0c040 https://github.com/sparkgene/smart_home_skill

40.

Alexaに日本語を しゃべらせたい

41.

Flash Briefing Skill API

42.

Flash Briefing Skill API ⚫ 簡単に言うと音声版RSS リーダ ⚫ 英語であれば rss / atom のURLを指定するだけ ⚫ オーディオを流すことも 出来る ⚫ Echo Showの登場で、ビデオも再生できるようになった

43.

オーディオを流すことが 出来る!

44.

Flash Briefingでオーディオを扱う条件 ▸音声データはhttpsでアクセスする必要あり ▸256kbps mono or stereo MP3 ▸音声ファイルが10分未満であること ▸ラウドネスが -14dB LUFS/LKFS。または、RMS値が -15 〜 13 dBの間であること。 https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/flash-briefing-skill-api-feedreference#audio-content

45.

Amazon Polly https://aws.amazon.com/jp/polly/

46.

Pollyが対応している言語 ▸24言語に対応 ▸男性・女性と用意されており、全部で48種類 ▸日本語もある! https://docs.aws.amazon.com/polly/latest/dg/voicelist.html

47.

Pollyとlambdaを組み合わせて自動変換

48.

デモ動画 https://youtu.be/HzpWTLiK2JI

49.

Alexaが日本語 喋った!!

50.

Flash briefing Skillを使ったまとめ ▸Flash Briefingはrssフィードがあれば管理画面だけで登 録可能 ▸Echo Showでは、動画のFlash Briefingにも対応 ▸Amazon Echoの使い方で、3番目に多いのがNewsを聞く ▸カテゴリ別でゲームに続いて2番目にSkillの数が多い (必ずしもFlash Briefing Skillとは限りませんが) http://www.businessinsider.com/what-people-do-with-amazon-echo-chart-2017-2

51.

日本語対応はよ

52.

Alexa Skill Kit 用のSDK

53.

Alexa Skillの開発を楽にしてくれるライブラリ ▸Alexa Skills Kit SDK for Node.js ・https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs ▸flask-ask (python) ・https://github.com/johnwheeler/flask-ask ▸Java Alexa Skills Kit SDK ・https://github.com/amzn/alexa-skills-kit-java

54.

Skill作るのは簡単

55.

初めてのSkillを作るための6つのステップ ▸ Step 1: Amazonデベロッパーアカウントを作成ましょう ▸ Step 2: AWSでLambdaファンクションを用意 ▸ Step 3: AlexaのコンソールでSkillとLambdaと連携させる ▸ Step 4: Skillをテストする ▸ Step 5: Skillをカスタマイズ ▸ Step 6: 審査に出して公開する https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/content/fact-skill-1

56.

ありがとうございました