Amazon Alexa/Skillを作ってみる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
Amazon Echoに搭載されてるAmazon Alexaは、スキルという仕組...
Amazon Echo経由で呼び出されたAmazon Alexaのスキルからは、...
**やってみる [#ecd1c214]
実際に、[[Alexaスキル開発トレーニングシリーズ 第1回 初め...
AWS/Amazon Developer Servicesアカウント作成メモ で作成し...
#ref(IMG_3741.png_new.png)
Alexa Skills Kit を選択。
#ref(IMG_3742.png_new.png)
***呼び出し名の定義 [#o390e5d1]
右上の「新しいスキルを追加する」を選択
#ref(IMG_3743.png_new.png)
言語やスキル名、呼び出し名を指定して、保存をクリック。
#ref(IMG_3745.png_new.png)
スキル名: HelloWorld
呼び出し名: うちゅうのまめちしき
としました。これで「アレクサ、宇宙の豆知識を開いて」みた...
*** インテントスキーマの設定 [#o34b3b0e]
いわゆる呼び出すメソッドを定義します。 下記のように「GetN...
#ref(IMG_3746.png_new.png)
{
"intents": [
{ "intent": "GetNewFactIntent" },
{ "intent": "AMAZON.HelpIntent" },
{ "intent": "AMAZON.StopIntent" },
{ "intent": "AMAZON.CancelIntent" }
]
}
って定義しました。インテント名: GetNewFactIntent っての...
インテントの設定には引数などその他の項目もあるのですが、...
ちなみにインテントのスキーマについては
-[[音声インターフェースを定義する | Custom Skills>https:/...
この辺に整理されていて、そこには
{
"intents": [
{
"intent": "GetHoroscope",
"slots": [ ↓ GetHoroscope ってインテントはSi...
{ "name": "Sign", "type": "LIST_OF_SIGNS" }, ...
{ "name": "Date", "type": "AMAZON.DATE" } ←...
]
},
{ "intent": "GetLuckyNumbers" }
]
}
こんな感じの、引数を定義した場合のサンプルがあります。
***サンプル発話の設定 [#fd764b0b]
「サンプル発話」の欄は以下のように定義します。
#ref(IMG_3747.png_new.png)
GetNewFactIntent 豆知識
GetNewFactIntent 豆知識を教えて
GetNewFactIntent 他の豆知識
GetNewFactIntent 雑学
GetNewFactIntent 雑学を教えて
GetNewFactIntent 他の雑学
GetNewFactIntent 知識
GetNewFactIntent 何か
GetNewFactIntent 何か教えて
上記のようにサンプル発話を指定することで、先の GetNewFact...
サンプル発話の仕様についても、先とおなじサイトに説明があ...
-[[音声インターフェースを定義する | Custom Skills>https:/...
ココをみると
GetHoroscope {Sign} の運勢を教えて
GetHoroscope {Sign} の {Date} の運勢を教えて
というように、インテントの定義で定義したSign/Date などの...
*** ロジックを記述したLambdaのアップロード [#z7ee9758]
つづいてAlexaが起動した後に実際に動くビジネスロジックを設...
https://m.media-amazon.com/images/G/01/mobile-apps/dex/al...
をあらかじめダウンロードしておき、任意のAWSのアカウントに...
#ref(lambda.png)
上記のキャプチャのように、Lambda関数のARN名が
arn:aws:lambda:ap-northeast-1:422641601508:function:MyFa...
であることを確認しておきます。
ちなみにこのLambda関数(index.js)はだいたい以下の通りにな...
'use strict';
var Alexa = require('alexa-sdk');
... 割愛
var data = [
"水星の一年はたった88日です。",
"金星は水星と比べて太陽より遠くにありますが、気温は...
"金星は反時計回りに自転しています。過去に起こった隕...
"火星上から見ると、太陽の大きさは地球から見た場合の...
...
"月は毎年3.8cm地球から離れていっています。"
];
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.APP_ID = APP_ID;
alexa.registerHandlers(handlers);
alexa.execute();
};
var handlers = {
'LaunchRequest': function () {
this.emit('GetNewFactIntent');
},
'GetNewFactIntent': function () {
var factArr = data;
var factIndex = Math.floor(Math.random() * factA...
var randomFact = factArr[factIndex];
var speechOutput = GET_FACT_MESSAGE + randomFact;
this.emit(':tellWithCard', speechOutput, SKILL_N...
},
'AMAZON.HelpIntent': function () {
var speechOutput = HELP_MESSAGE;
var reprompt = HELP_REPROMPT;
this.emit(':ask', speechOutput, reprompt);
},
'AMAZON.CancelIntent': function () {
this.emit(':tell', STOP_MESSAGE);
},
'AMAZON.StopIntent': function () {
this.emit(':tell', STOP_MESSAGE);
}
};
*** 動くロジックの指定 [#r503bb95]
サンプル発話の設定 で「次へ」をクリックしたら、次は実際に...
#ref(IMG_3748.png_new.png)
***テストしてみる [#p8c6de65]
次画面で、実際にLambdaのロジックを呼び出したらどうなるか...
下記画面の サービスシミュレータの「発話を入力してください...
#ref(IMG_3749.png_new.png)
***その他公開情報の設定 [#hb847531]
Echo上でスキルを公開するための情報を記載します。下の図の...
#ref(IMG_3753.png_new.png)
#ref(IMG_3754.png_new.png)
***プライバシーとコンプライアンス [#g7593ced]
下の図のように、プライバシーとコンプラに関する情報を設定...
#ref(IMG_3755.png_new.png)
***まとめ [#q4d3b01f]
以上で、スキルの定義からAWs Lambda関数の紐付け、またドラ...
ちなみに、これまで入力していた情報がもれなく入力されてい...
#ref(IMG_3756.png_new.png)
**関連リンク [#j7d38c18]
-[[Alexa | アレクサ | Alexaスキル開発トレーニング>https:/...
-[[開発中のAlexaスキルを実機テストする方法 - Qiita>https:...
-[[カスタムスキルのAWS Lambda関数を作成する | Custom Skil...
-[[スキルのテストがシミュレーター「Echosim.io」で可能にな...
-[[日本語のAlexaスキルの作り方(30分あればAmazon Echoがな...
-[[Amazon Echo (Alexa) のSkillの開発に必要な基本概念を押...
-[[Alexa Skill 開発メモ 開発用Amazonアカウント用意と、Al...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
終了行:
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents
Amazon Echoに搭載されてるAmazon Alexaは、スキルという仕組...
Amazon Echo経由で呼び出されたAmazon Alexaのスキルからは、...
**やってみる [#ecd1c214]
実際に、[[Alexaスキル開発トレーニングシリーズ 第1回 初め...
AWS/Amazon Developer Servicesアカウント作成メモ で作成し...
#ref(IMG_3741.png_new.png)
Alexa Skills Kit を選択。
#ref(IMG_3742.png_new.png)
***呼び出し名の定義 [#o390e5d1]
右上の「新しいスキルを追加する」を選択
#ref(IMG_3743.png_new.png)
言語やスキル名、呼び出し名を指定して、保存をクリック。
#ref(IMG_3745.png_new.png)
スキル名: HelloWorld
呼び出し名: うちゅうのまめちしき
としました。これで「アレクサ、宇宙の豆知識を開いて」みた...
*** インテントスキーマの設定 [#o34b3b0e]
いわゆる呼び出すメソッドを定義します。 下記のように「GetN...
#ref(IMG_3746.png_new.png)
{
"intents": [
{ "intent": "GetNewFactIntent" },
{ "intent": "AMAZON.HelpIntent" },
{ "intent": "AMAZON.StopIntent" },
{ "intent": "AMAZON.CancelIntent" }
]
}
って定義しました。インテント名: GetNewFactIntent っての...
インテントの設定には引数などその他の項目もあるのですが、...
ちなみにインテントのスキーマについては
-[[音声インターフェースを定義する | Custom Skills>https:/...
この辺に整理されていて、そこには
{
"intents": [
{
"intent": "GetHoroscope",
"slots": [ ↓ GetHoroscope ってインテントはSi...
{ "name": "Sign", "type": "LIST_OF_SIGNS" }, ...
{ "name": "Date", "type": "AMAZON.DATE" } ←...
]
},
{ "intent": "GetLuckyNumbers" }
]
}
こんな感じの、引数を定義した場合のサンプルがあります。
***サンプル発話の設定 [#fd764b0b]
「サンプル発話」の欄は以下のように定義します。
#ref(IMG_3747.png_new.png)
GetNewFactIntent 豆知識
GetNewFactIntent 豆知識を教えて
GetNewFactIntent 他の豆知識
GetNewFactIntent 雑学
GetNewFactIntent 雑学を教えて
GetNewFactIntent 他の雑学
GetNewFactIntent 知識
GetNewFactIntent 何か
GetNewFactIntent 何か教えて
上記のようにサンプル発話を指定することで、先の GetNewFact...
サンプル発話の仕様についても、先とおなじサイトに説明があ...
-[[音声インターフェースを定義する | Custom Skills>https:/...
ココをみると
GetHoroscope {Sign} の運勢を教えて
GetHoroscope {Sign} の {Date} の運勢を教えて
というように、インテントの定義で定義したSign/Date などの...
*** ロジックを記述したLambdaのアップロード [#z7ee9758]
つづいてAlexaが起動した後に実際に動くビジネスロジックを設...
https://m.media-amazon.com/images/G/01/mobile-apps/dex/al...
をあらかじめダウンロードしておき、任意のAWSのアカウントに...
#ref(lambda.png)
上記のキャプチャのように、Lambda関数のARN名が
arn:aws:lambda:ap-northeast-1:422641601508:function:MyFa...
であることを確認しておきます。
ちなみにこのLambda関数(index.js)はだいたい以下の通りにな...
'use strict';
var Alexa = require('alexa-sdk');
... 割愛
var data = [
"水星の一年はたった88日です。",
"金星は水星と比べて太陽より遠くにありますが、気温は...
"金星は反時計回りに自転しています。過去に起こった隕...
"火星上から見ると、太陽の大きさは地球から見た場合の...
...
"月は毎年3.8cm地球から離れていっています。"
];
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.APP_ID = APP_ID;
alexa.registerHandlers(handlers);
alexa.execute();
};
var handlers = {
'LaunchRequest': function () {
this.emit('GetNewFactIntent');
},
'GetNewFactIntent': function () {
var factArr = data;
var factIndex = Math.floor(Math.random() * factA...
var randomFact = factArr[factIndex];
var speechOutput = GET_FACT_MESSAGE + randomFact;
this.emit(':tellWithCard', speechOutput, SKILL_N...
},
'AMAZON.HelpIntent': function () {
var speechOutput = HELP_MESSAGE;
var reprompt = HELP_REPROMPT;
this.emit(':ask', speechOutput, reprompt);
},
'AMAZON.CancelIntent': function () {
this.emit(':tell', STOP_MESSAGE);
},
'AMAZON.StopIntent': function () {
this.emit(':tell', STOP_MESSAGE);
}
};
*** 動くロジックの指定 [#r503bb95]
サンプル発話の設定 で「次へ」をクリックしたら、次は実際に...
#ref(IMG_3748.png_new.png)
***テストしてみる [#p8c6de65]
次画面で、実際にLambdaのロジックを呼び出したらどうなるか...
下記画面の サービスシミュレータの「発話を入力してください...
#ref(IMG_3749.png_new.png)
***その他公開情報の設定 [#hb847531]
Echo上でスキルを公開するための情報を記載します。下の図の...
#ref(IMG_3753.png_new.png)
#ref(IMG_3754.png_new.png)
***プライバシーとコンプライアンス [#g7593ced]
下の図のように、プライバシーとコンプラに関する情報を設定...
#ref(IMG_3755.png_new.png)
***まとめ [#q4d3b01f]
以上で、スキルの定義からAWs Lambda関数の紐付け、またドラ...
ちなみに、これまで入力していた情報がもれなく入力されてい...
#ref(IMG_3756.png_new.png)
**関連リンク [#j7d38c18]
-[[Alexa | アレクサ | Alexaスキル開発トレーニング>https:/...
-[[開発中のAlexaスキルを実機テストする方法 - Qiita>https:...
-[[カスタムスキルのAWS Lambda関数を作成する | Custom Skil...
-[[スキルのテストがシミュレーター「Echosim.io」で可能にな...
-[[日本語のAlexaスキルの作り方(30分あればAmazon Echoがな...
-[[Amazon Echo (Alexa) のSkillの開発に必要な基本概念を押...
-[[Alexa Skill 開発メモ 開発用Amazonアカウント用意と、Al...
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}
ページ名: