Submit Search
20191206_Alexaスキルを作ってみよう
0 likes
124 views
Y
yamamotomsc
マネージメントサービス株式会社のAWS若手勉強会(14回目)の資料
Engineering
Read more
1 of 56
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
More Related Content
PPTX
Alexa Skills Kitを使って自作のSkillを作る
Jun Ichikawa
PDF
Rubyでalexaプログラミング
tanaka taro
PDF
Alexa conversations に触れてみよう
Mitsuya Takarashima
PPTX
JAWS-UG IoT専門支部 Amazon AI
Jun Ichikawa
PPTX
Lambdaを使ったAlexaスキル開発の舞台裏
Shinya Terasaki
PPTX
AlexaでスマートホームをDIYする
Jun Ichikawa
PPTX
Alexaスキルのはじめ方
Jun Ichikawa
PDF
Alexa Gadgets Toolkitから広がるVUIの可能性
Masami Yamate
Alexa Skills Kitを使って自作のSkillを作る
Jun Ichikawa
Rubyでalexaプログラミング
tanaka taro
Alexa conversations に触れてみよう
Mitsuya Takarashima
JAWS-UG IoT専門支部 Amazon AI
Jun Ichikawa
Lambdaを使ったAlexaスキル開発の舞台裏
Shinya Terasaki
AlexaでスマートホームをDIYする
Jun Ichikawa
Alexaスキルのはじめ方
Jun Ichikawa
Alexa Gadgets Toolkitから広がるVUIの可能性
Masami Yamate
Similar to 20191206_Alexaスキルを作ってみよう
(20)
PPTX
15分でできるAmazon Alexa Skill開発
拓哉 中山
PPTX
Alexa Skills Kitでプロダクトの可能性を広げる
Jun Ichikawa
PPTX
Trat sprint11
tratwakate
PPTX
Alexa SDK Alexa Salon
Shinichi Hirauchi
PPTX
Amazon AlexaとServerless
Jun Ichikawa
PDF
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
Eiji KOMINAMI
PPTX
Alexa Skills Kitの始め方
Jun Ichikawa
PPTX
俺の話を聞け!Lt大会#7
美穂 山田
PPTX
JAWS-UG AI支部 #2 re:Invent アップデート
Yasuhiro Matsuo
PDF
自然言語処理サービスとRaspberry PIで自分だけの音声入力デバイスを作ろう
賢太郎 前多
PPTX
AWS CLIでAlexaのカスタムスキルをデプロイしている話
Yasuyuki Sato
PPTX
「Alexaから君へ」Master cloud #9 新春クラウドLT大会
Mitsuhiro Yamashita
PDF
[CTO Night & Day 2019] よくある課題を一気に解説!御社の技術レベルがアップする 2019 秋期講習 #ctonight
Amazon Web Services Japan
PDF
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
Amazon Web Services Japan
PDF
Alexaスキルを作ろう
真吾 吉田
PDF
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi
PDF
Azure Functions で Google Home, Amazon Echo, LINE Clova スキル開発 #decode19
Madoka Chiyoda
PDF
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
PDF
Alexa gadgets toolkitで始まるAlexaスキルの世界
Masami Yamate
PDF
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
schoowebcampus
15分でできるAmazon Alexa Skill開発
拓哉 中山
Alexa Skills Kitでプロダクトの可能性を広げる
Jun Ichikawa
Trat sprint11
tratwakate
Alexa SDK Alexa Salon
Shinichi Hirauchi
Amazon AlexaとServerless
Jun Ichikawa
AWS Amplify - Auth/API Category & Vue 構築ハンズオン
Eiji KOMINAMI
Alexa Skills Kitの始め方
Jun Ichikawa
俺の話を聞け!Lt大会#7
美穂 山田
JAWS-UG AI支部 #2 re:Invent アップデート
Yasuhiro Matsuo
自然言語処理サービスとRaspberry PIで自分だけの音声入力デバイスを作ろう
賢太郎 前多
AWS CLIでAlexaのカスタムスキルをデプロイしている話
Yasuyuki Sato
「Alexaから君へ」Master cloud #9 新春クラウドLT大会
Mitsuhiro Yamashita
[CTO Night & Day 2019] よくある課題を一気に解説!御社の技術レベルがアップする 2019 秋期講習 #ctonight
Amazon Web Services Japan
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
Amazon Web Services Japan
Alexaスキルを作ろう
真吾 吉田
Programming AWS with Perl at YAPC::Asia 2013
Yasuhiro Horiuchi
Azure Functions で Google Home, Amazon Echo, LINE Clova スキル開発 #decode19
Madoka Chiyoda
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
Alexa gadgets toolkitで始まるAlexaスキルの世界
Masami Yamate
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
schoowebcampus
Ad
More from yamamotomsc
(13)
PPTX
20200304 vuejs
yamamotomsc
PPTX
20191224 aws cloud9
yamamotomsc
PPTX
20191129 AWS CloudFormarion
yamamotomsc
PPTX
20191115_Cloud Front
yamamotomsc
PPTX
20191031_Amazon Api Gateway
yamamotomsc
PPTX
20191018 AWS Lambda
yamamotomsc
PDF
20191011_Route 53
yamamotomsc
PPTX
20190927_AWS VPC
yamamotomsc
PPTX
20190920 AWS IAM
yamamotomsc
PPTX
20190913 awscli
yamamotomsc
PPTX
20190906_私が使ったAWSサービス
yamamotomsc
PPTX
20190823_AMAZON EC2
yamamotomsc
PPTX
20190809_AWS第1歩目
yamamotomsc
20200304 vuejs
yamamotomsc
20191224 aws cloud9
yamamotomsc
20191129 AWS CloudFormarion
yamamotomsc
20191115_Cloud Front
yamamotomsc
20191031_Amazon Api Gateway
yamamotomsc
20191018 AWS Lambda
yamamotomsc
20191011_Route 53
yamamotomsc
20190927_AWS VPC
yamamotomsc
20190920 AWS IAM
yamamotomsc
20190913 awscli
yamamotomsc
20190906_私が使ったAWSサービス
yamamotomsc
20190823_AMAZON EC2
yamamotomsc
20190809_AWS第1歩目
yamamotomsc
Ad
20191206_Alexaスキルを作ってみよう
1.
Alexaスキルを作ってみよう 1 マネージメントサービス株式会社 風間玲央
2.
2 Alexaスキルとは Alexaは、Amazon Echo、Echo Dotをはじめとする数 多くのデバイスで中枢的な働きをするAmazonの音 声サービスです。 https://developer.amazon.com/ja-JP/alexa/alexa- skills-kit ⇒スマートスピーカーやスマートフォンに話しかける と、色んなことをしてくれる音声サービス!
3.
今回作るスキル 好きな言葉(+です)を話しかけると、Alexaがその言 葉をそのまま返します。 目的:AWSを使って、簡単に音声サービスが作れるこ とを体験する 3
4.
事前準備 ・必ず用意:PCとAmazon Developerアカウント (Amazonのショッピングサイトのアカウントを登録で きます。)⇒登録方法はスライド5~11へ ・あると良い1:Visual Studio
Code (https://azure.microsoft.com/ja-jp/products/visual- studio-code/) (検索エンジンで「Visual Studio Code」で検索してイ ンストール) ・あると良い2:スマートフォンとAlexaアプリ(アプリ ストアから「Amazon Alexa」で検索してインストール) ・あると便利かも:マイク付きのイヤホン・ヘッドホン (Alexaとのやり取りで使用。なくてもテストはブラウ ザ上でテキストのやり取りでできます。) Alexaアプリ 4
5.
Amazon Developerアカウントの登録 5
6.
スキル開発を始める Alexaスキルを開発する (https://developer.amazon.com /ja-JP/alexa/alexa-skills- kit/build)にアクセスし、「スキル 開発を始める」をクリックします。 「Alexaスキルを開発する」で検 索すると出てきます。 6
7.
ログイン Amazonアカウントでログインし ます。 アカウントがなければ、新しく Amazonアカウントを作成します。 7
8.
プロフィール入力 ログイン後、開発者としてのプ ロフィール情報を入力します。 メールアドレス、電話番号、住 所等は個人のものでも会社の ものでも、アカウント作成が可 能です(スキルを公開した場合 の連絡先になります)。 入力し終わったら、「保存して続 行」をクリックします。 8
9.
Agreementを承認 「承認して続行」をクリックします。 9
10.
開発者プロフィールの 作成完了 「後で行う」をクリックします。 10
11.
Amazon Developer ダッシュボード 開発者プロフィールの作成が完 了すると、Amazon Developer (https://developer.amazon.com /dashboard)のダッシュボードに 遷移します。 以上でAmazon
Developerアカウ ントの登録は完了です。 11
12.
対話モデルの作成 12
13.
Amazon Developer にアクセス Amazon Developer
にログインし ていない場合、 Amazon Developer (https://developer.amazon.com /ja/)にアクセスします。 (「amazon developer」で検索す ると出てきます。) 「ログイン」をクリックします。 13
14.
ログイン 開発者プロフィールを作成した Amazonアカウントでログインし ます。 14
15.
Alexa のページへ ログインしたら、「Alexa」をクリッ クします。 15
16.
開発者コンソールへ Alexaのトップページ ( https://developer.amazon.com /ja-JP/alexa/ )に入ったら「Alexa Skills
Kit」タブの「開発者コン ソール」をクリックします。 16
17.
スキルの作成 alexa developer console (
https://developer.amazon.com /alexa/console/ask )から 「スキルの作成」をクリックしま す。 17
18.
スキル名、言語、モデルを 入力・選択 任意のスキル名を入力して「ス キルを作成」をクリックします。 デフォルトの言語、スキルに追 加するモデルはそのまま「日本 語(日本)」と「カスタム」にしてお きます。 下にスクロールします。 18
19.
ホスティングする方法を 選択 「Alexa-Hosted (Node.js)」を選択 したら、上にスクロールして「ス キルを作成」をクリックします。 19
20.
呼び出し名を選択 「呼び出し名」をクリックします。 20
21.
呼び出し名を入力 スキルを呼び出すときに話しか ける、呼び出し名を入力します。 何でもよいですが、「呼び出し名 の要件」(画面参照)は満たす 必要があります(※)。 入力後、「モデルをビルド」をク リックします。 ※日常的に使う言葉ではなく、 スキル特有の呼び出し名にした 方が、Alexaがスキルの呼び出 しを認識しやすくなります。 21
22.
HelloWorldIntentを確認 ビルドを待っている間にインテ ントを見てみます。 「HelloWorldIntent」をクリックし てください。 22
23.
インテントとは スキルで実行するアクションの ことをインテントと言います。 サンプル発話に登録された言 葉を話しかけると、インテントが 呼ばれます。 デフォルトでは、「Hello」「how are you」など7個のインテントが 登録されています。 23
24.
デプロイへ 「完全ビルドが完了しました」と 表示されたら、「コードエディタ」 をクリックします。 24
25.
デプロイ 「デプロイ」をクリックします。 25
26.
テストへ 「デプロイが完了しました」と表 示されたら、「テスト」をクリック します。 26
27.
テストを有効化 デフォルトではテストが無効に なっているので、リストボックス から「開発中」を選んでテストを 有効にします。 27
28.
テストを実行 テキストを入力してEnterでAlexa とのやり取りをシミュレーション できます。 [呼び出し名(ここでは「こだ ま」)]でスキルを呼び出し、サン プル発話に登録されている発話 (ここでは「hello」)でインテント を呼び出します。 やり取りを確認したら、「ビルド」 タブに戻ります。 28
29.
インテントを追加 「インテント」の右にある「+追 加」をクリックします。 29
30.
カスタムインテントを作成 テキストボックスに「EchoIntent」 と入力して「カスタムインテント を作成」をクリックします。 30
31.
インテントスロットを作成 下にスクロールします。 31
32.
インテントスロットを追加 インテントスロットの名前に 「phrase」と入力して「+」ボタン をクリックします。 32
33.
スロットタイプを選択 スロットタイプを 「AMAZON.SerchQuery」にしま す。(本来は検索用のスロットタ イプです。何でも受け取ること ができるので、今回はこちらを 利用します。) 33
34.
サンプル発話を追加 ページ上部に戻ってサンプル発 話に「{phrase} です」と入力しま す。「 {phrase}は「{」を入力する と出てくる候補から選択できま す。その後ろに「半角スペース +です」を入力します。 ※入力後、「+」ボタンをクリック します。 34
35.
スロットの編集へ サンプル発話に「{phrase} で す」が追加されたら、インテント スロットの「phrase」をクリックし ます。 35
36.
スロットを必須に 「このインテントを完了させるた めに、このスロットは必須です か?」をオンにします。 36
37.
スロット入力を編集 Alexaの音声プロンプトにAlexa が話しかける任意の言葉を入 力して「+」ボタンをクリックしま す。 さらに、ユーザーの発話に 「{phrase}」を入力して「+」ボタ ンをクリックします。 37
38.
モデルをビルド サンプル発話に「{phrase} で す」が追加されたら、「インター フェース」をクリックします。 38
39.
インターフェースへ 画面下部「オートデリゲート」の スイッチボタンをクリックして無 効にします。 39
40.
モデルをビルド インターフェースがすべて無効に なったら、「インターフェースを保 存」をクリックします。 その後、「モデルをビルド」をク リックします。 「完全ビルドが完了しました」と表 示されたら、対話モデルの作成 は完了です( ※ )
。 ※ 「{phrase}」と「です」の間に半 角スペースがなかったり、全角ス ペースが混ざっていたりすると、 エラーになるので注意。 40
41.
AWS Lambda関数(Node.js)の実装 41
42.
コードエディタへ 「完全ビルドが完了しまし た」と表示されたら、「コード エディタ」をクリックします。 42
43.
Index.jsを編集 ソースコードの編集画面に 遷移します。 まずは、表示されている index.jsを編集していきます。 なお、ソースコードは以下の 場所にあります。 https://github.com/forshoes -admin/Alexa- reception/tree/master/hand s-on 画面上のソースコードを編 集したら、 「保存」をクリック またはCtrl +
Sで保存できま す。 43
44.
参考:Visual Studio Codeで編集 Index.jsのソースコードを全 選択してコピーし、 Visual Studio
Codeに言語を 「JavaScript」、インデントを 「スペース:2」にして張り付け ると見やすく、編集しやすい です。 編集が終わったら、 Visual Studio Codeのソースコード を全選択してコピーし、 alexa developer consoleの ソースコードを全選択して上 書きで貼り付けます 44
45.
LaunchRequestHandler を編集 const LaunchRequestHandler =
{ canHandle(handlerInput) { return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest'; }, handle(handlerInput) { console.log(“LaunchRequestHandlerのhandleを呼び出し"); return handlerInput.responseBuilder .addDelegateDirective({ name: 'EchoIntent', confirmatioinStatus: 'NONE', slots: {} }) .getResponse(); } }; LaunchRequestHandler ( const LaunchRequestHandler = { };の波括弧の中)を右の通り に編集します。 45
46.
解説 addDelegateDirective 関数に渡すオブジェクト const LaunchRequestHandler =
{ ………………………………………………(省略)……………………………………………………………… handle(handlerInput) { console.log("LaunchRequestHandlerが起動"); return handlerInput.responseBuilder .addDelegateDirective({ name: 'EchoIntent', confirmatioinStatus: 'NONE', slots: {} }) .getResponse(); } }; nameプロパティにはインテント名を指 定します。 confirmatioinStatusプロパティにはイ ンテントが確認されたか (CONFIRMED)、拒否されたか (DENIED)を表します。NONEの場合 は、ユーザーにまだ確認を行ってい ないことを表します。 slotsプロパティには、スロット値を指 定します。今回はプログラムからス ロット値を指定しないので、空のオブ ジェクトを指定します。 最後にgetResponse関数を呼び出し てレスポンスを返します。 46
47.
EchoIntentHandler を追加 const EchoIntentHandler =
{ canHandle(handlerInput) { return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' && Alexa.getIntentName(handlerInput.requestEnvelope) === 'EchoIntent' && Alexa.getDialogState(handlerInput.requestEnvelope) !== 'COMPLETED' }, handle(handlerInput) { console.log("EchoIntentHandlerのhandleを呼び出し"); let speakOutput = ""; try { speakOutput = Alexa.getSlotValue(handlerInput.requestEnvelope, "phrase"); } catch (e) { console.error(e); } return handlerInput.responseBuilder .speak(speakOutput) .getResponse(); } }; 右の通りの EchoIntentHandler (const EchoIntentHandler = { };の波括弧)を追加します。 追加する場所は任意ですが、 LaunchRequestHandler とHelloWorldIntentHandler の間に追加しました(次ペー ジ参照)。 47
48.
EchoIntentHandler を追加する場所 const LaunchRequestHandler =
{ ………………………………………………(省略)……………………………………………………………… }; const EchoIntentHandler = { canHandle(handlerInput) { ………………………………………………(省略)……………………………………………………………… }, handle(handlerInput) { ………………………………………………(省略)……………………………………………………………… } }; const HelloWorldIntentHandler = { ………………………………………………(省略)……………………………………………………………… }; LaunchRequestHandler とHelloWorldIntentHandler の間に追加しました。 48
49.
解説 const EchoIntentHandler =
{ ………………………………………………(省略)……………………………………………………………… handle(handlerInput) { console.log("EchoIntentHandlerのhandleを呼び出し"); let speakOutput = ""; try { speakOutput = Alexa.getSlotValue(handlerInput.requestEnvelope, "phrase"); } catch (e) { console.error(e); } return handlerInput.responseBuilder .speak(speakOutput) .getResponse(); } }; getSlotValue関数は、 handlerInput.requestEnvelo peとインテントスロット名を 引数として呼び出すと、取得 したスロットの値が返ってき ます。 speak関数は、Alexaの応答 メッセージを引数として呼び 出すと、Alexaが引数の値で 応答します。今回は、スロッ トの値そのままでAlexaが応 答します。 49
50.
handler関数を編集 exports.handler = Alexa.SkillBuilders.custom() .addRequestHandlers( LaunchRequestHandler, EchoIntentHandler, HelloWorldIntentHandler, HelpIntentHandler, CancelAndStopIntentHandler, SessionEndedRequestHandler, //IntentReflectorHandler,
// make sure IntentReflectorHandler is last so it doesn't override your custom intent handlers ) .addErrorHandlers( ErrorHandler, ) .lambda(); handler関数内の addRequestHandlers 関数の 引数にEchoIntentHandlerを 追加し、 IntentReflectorHandler(テス ト・デバッグ用の関数)をコメ ントアウトします。 以上でindex.jsの編集は完 了です。 50
51.
デプロイ alexa developer consoleで index.jsの編集が完了したら、 「デプロイ」をクリックしてデ プロイします。 51
52.
デプロイ完了 「デプロイが完了しました」と 表示されたら、デプロイ完了 です。 早速テストをしてみましょう。 52
53.
動作を確認 「こだま」で呼び出し、「〇〇 です」に対して、Alexaが「〇 〇」と返すのを確認できます。 開発者アカウントでログイン してAlexaアプリを使えば、シ ミュレーションではなく、実際 のAlexaの動作を確認できま す。 53
54.
最後に 54
55.
Alexaスキル開発についてもっと学びたい場合 ・今回は「〇〇です」で発話していますが、以下のサイトの方法を使うとテキストをそのまま発話し てオウム返しできます。 Alexaで自由テキストをつかむ方法 ー おうむ返しくんの場合
ー (https://note.mu/torusnote/n/n77896a394177 2019年12月2日最終アクセス) ・公式サンプルコード(2019年12月5日最終アクセス) ファクトスキルのテンプレート(https://github.com/alexa/skill-sample-nodejs-fact/tree/ja-JP) トリビアスキルのテンプレート(https://github.com/alexa/skill-sample-nodejs-trivia/tree/ja-JP) クイズゲームスキルのテンプレート(https://github.com/alexa/skill-sample-nodejs-quiz- game/tree/ja-JP) ・ Alexa公式ブログには、スキルの学習用サンプルや、新しい機能の紹介があります。 Alexa公式ブログ 日本向け記事 ( https://developer.amazon.com/ja/blogs/alexa/tag/Japan 2019年12月2日最終アクセス) 55
56.
参考 ・ Alexa Skills
Kit Official Site: Build Skills for Voice (https://developer.amazon.com/ja/alexa-skills-kit 2019年12月2日最終アクセス) ・【Alexa】Connpass用の受付スキルを作ってみた #Alexa #AlexaDevs(https://dev.classmethod.jp/voice- assistant/try-to-develop-registration-skill/ 2019年12月2日最終アクセス) ・Alexaスキル開発トレーニングシリーズ第4回: ユーザーとの対話 ( https://developer.amazon.com/ja/blogs/alexa/post/319a5083-7858-4cb2-987e- 5bcd7f833533/alexatraining-dialog 2019年12月2日最終アクセス) ・インテントチェーンを使って別のインテントのダイアログを管理する Dialog.Delegateを使ったインテントの チェーン (https://developer.amazon.com/ja/blogs/alexa/post/b3939b11-5cef-4598-b2f9- c7ad904e1692/understanding-intent-chaining 2019年12月2日最終アクセス) ・[日本語Alexa] Alexa SDK for Node.js Ver2入門(その3)レスポンスの作成 (https://dev.classmethod.jp/cloud/alexa-sdk-v2-third/ 2019年12月2日最終アクセス) ・【Alexa】ASK SDKにスキルエンジニアの強い味方「ASK SDK Utilities」が登場。 #Alexa #AlexaDevs (https://dev.classmethod.jp/voice-assistant/introduce-to-ask-sdk-utilities/ 2019年12月2日最終アクセス) 56
Download