Amazon AlexaのCustom Skillをサンプルから学ぶ

はじめに

さて、今回はCustom Skillを作ってみたいと思います。とはいえいきなり難しいものを作るのは辛いので、公式に用意されているサンプルスクリプト、Node.js Alexa Skills Kit Samplesのうち、Sample AWS Lambda function for Alexaをそのまま設定してみて、Custom Skillを開発する工程を知りたいと思います。

やってみた

サンプルスクリプトを入手する

サンプルスクリプトのリポジトリをローカル環境にcloneします。

$ git clone https://github.com/amzn/alexa-skills-kit-js

今回使うサンプルスクリプトをAWS Lambdaにアップロードするために、zip圧縮します。

$ cd alexa-skills-kit-js/samples/helloWorld/src/
$ zip helloWorld.zip index.js AlexaSkill.js
  adding: index.js (deflated 59%)
  adding: AlexaSkill.js (deflated 73%)

Lambda Functionを作成する

AWS管理コンソールで、バージニアリージョンが選択されていることを確認します。AWS Lambdaコンソールで[Get Started Now]ボタンをクリックします。

Lambda_Management_Console

[Select blueprint]画面が表示されますが、[Configure triggers]をクリックしてスキップします。

Lambda_Management_Console 2

[Configure triggers]画面で、Triggerとして[AWS Skills Kit]を選択します。

Lambda_Management_Console 3

[AWS Skills Kit]が選択されていることを確認し、[Next]ボタンをクリックします。

Lambda_Management_Console 4

[Configure Function]画面が表示されます。[Name]は適当に設定します。[Runtime]は[Node.js 4.3]を選択します。[Code entry type]で[Upload a .ZIP file]を選択し、[Upload]ボタンをクリックして、前述で作成したzipファイルを指定します。

Lambda_Management_Console 5

[Lambda function handler and role]欄で、[Handler]は「index.handler」のままとします。[Role name]は適当に設定します。

Lambda_Management_Console 6

あとはデフォルトのままで構わないので、[Next]ボタンをクリックします。

Lambda_Management_Console 7

設定確認画面になりますので、画面下部の[Create function]ボタンをクリックします。

Lambda_Management_Console 8

すると以下のようにLambda Functionが作成されます。

Lambda_Management_Console 9

Custom Skillを作成する

Amazon Developer Consoleの上部バーから[ALEXA]をクリックします。画面中央の[Alexa Skills Kit]をクリックします。

Amazon_Apps___Services_Developer_Portal

[Building Alexa Skills with the Alexa Skills Kit]画面が表示されます。[Add a New Skill]ボタンをクリックします。

Amazon_Apps___Services_Developer_Portal 2

[Create a New Alexa Skill - Skill information]画面が表示されます。[Name]はSkillに設定する固有名で、[Invocation Name]が呼び出しに使う名前です。今回は[hello world]と設定していますので、このSkillを呼び出す時は「tell hello world」と話しかけることになります。設定後[Next]ボタンをクリックします。

Amazon_Apps___Services_Developer_Portal 3

[Interaction Model]の設定画面が表示されます。ここがCustom Skillの設定のキとなるところで、[Intent Schema]はLambdaに渡すプロパティ、[Sample Utterances]はAlexaに呼びかける文章とIntentの紐つけの定義です。今回は深追いせず、サンプルスクリプトのspeechAssetsフォルダに含まれているファイルの内容を貼り付けます。設定後[Next]ボタンをクリックします。

Amazon_Apps___Services_Developer_Portal 4

[Configuration]画面が表示されます。[Endpoint]欄で、[AWS Lambda ARN]をチェックします。リージョンは[North America]をチェックし、Lambda FunctionのEndpointを入力します。設定後[Next]ボタンをクリックします。

Amazon_Apps___Services_Developer_Portal 5

以下の画面が表示されたら、Custom Skillが作成され、自分のアカウントのみでテスト可能な状況になっています。

Amazon_Apps___Services_Developer_Portal 6

確認する

Amazon Alexaの管理画面でSkillsを確認すると、以下のように追加されたCustom SkillがEnableになっています。アイコンにdevと表示されていますね。

Amazon_Alexa

では実際に使ってみます。

さいごに

サンプルスクリプトをCustom Skillとして登録することで、Custom Skillを開発する流れが分かりました。次は実際にCustom Skillの中身まで追ってみたいと思います!