Weitere ähnliche Inhalte
Ähnlich wie Rubyでalexaプログラミング (11)
Rubyでalexaプログラミング
- 4. Alexa Skill プログラミング
Alexa Skillとは
Alexa対応デバイス(Amazon Echo等)から取得した音声情報を処理するプログラム。
以下の種類がある
・カスタムスキル <= 今日話すやつ
自作アプリを作るスキル
・スマートホームスキル
スマートホーム・デバイスの操作に特化したスキル
・フラッシュプリーフィングスキル
ニュース配信用(RSS,JSON)のスキル
- 8. Alexa開発者ポータルで設定する内容(図)
牛丼注文して
<インテントスキーマ>
{ “intents”: [
{ “intent”: “OrderIntent”
slots: { “name” : “item”, “type”: “MyItem”}
}
{ “intent”: “BankIntent” }
] }
<サンプル発話>
OrderIntent {MyItem} 注文して
BankIntent 銀行残高を教えて
BankIntent いくら銀行に残ってる
自作プログラム
OR
AWS Lamda
Webhock(HTTPS)
※言語等の制約なし
Intent: OrderIntent
slot: item 牛丼
<カスタムスロット>
タイプ:MyItem
値: 牛丼、牛乳、白米、卵
注文しました
- 9. 自作プログラム部分の処理内容
サービスリクエスト
{
"session": {
~
},
"request": {
"type": "IntentRequest",
"requestId": "EdwRequestId.4d~",
"intent": {
"name": "OrderIntent",
"slots": {
"item": {
"name": "item"
“value”: “牛丼”
},
}
},
~
},
}
}
サービスレスポンス
{
"version": "1.0",
"response": {
"outputSpeech": {
"ssml": "<speak>注文しました</speak>",
"type": "SSML"
},
"speechletResponse": {
"outputSpeech": {
"ssml": "<speak>注文しました</speak>"
},
"shouldEndSession": false
}
},
"sessionAttributes": {
}
}
Lamda or Webhock
[自作プログラムでやる事 ]
受信したJsonを元に応答内
容を決定し、レスポンスを
Jsonで返す
Intent
Slot
応答内容
- 14. Relyxaの使い方(2)
(3) 各Intent毎の処理をIntentフォルダ以下に書く。
main.rb
intent
-- xxx.rb
-- yyy.rb
(3-1) ユーザの返答が必要ない場合は tell()を使う
intent "OrderIntent" do
tell("承知しました")
end
(3-2)ユーザの返答をチェックする場合は ask()を使う
intent "BankIntent" do
ask("山田銀行です。暗証番号を言ってください ")
end
(3-3) 情報を保存する場合
session_attributes引数にハッシュで指定
intent "SaveIntent" do
ask("牛丼を保存しました?",
session_attributes: { dataOne: "牛丼" })
end
(3-4)保存した情報と取り出す場合
request.session_attribute("xxx")で取得
intent "ReadIntent" do
read_data =request.session_attribute("dataOne")
ask("保存したデータは: #{ read_data }")
end
- 15. デモ
擬似 寿司注文アプリを作ってみた。
・仕様
「Alexa、寿司アプリを開いて」 => 「いらっしゃいませ。寿司屋へようこそ」
「注文をお願いします」 => 「受けたまります。ご注文のネタをおっしゃってください」
「いか、たこ」 => 「ご確認いたします。ご注文は、いか ,たこ ですね。すぐにお持ちします」
「卵焼き、まぐろ」=> 「ご確認いたします。ご注文は、卵焼き ,いか ですねすぐにお持ちします」
「会計お願いします」 => 「お会計を致します。いか 100円。たこ100円。卵焼き100円。
まぐろ100円。合計400円になります。ありがとうございます。」
・ソースコード
https://github.com/goroya/ralyxa_test