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]ボタンをクリックします。
[Select blueprint]画面が表示されますが、[Configure triggers]をクリックしてスキップします。
[Configure triggers]画面で、Triggerとして[AWS Skills Kit]を選択します。
[AWS Skills Kit]が選択されていることを確認し、[Next]ボタンをクリックします。
[Configure Function]画面が表示されます。[Name]は適当に設定します。[Runtime]は[Node.js 4.3]を選択します。[Code entry type]で[Upload a .ZIP file]を選択し、[Upload]ボタンをクリックして、前述で作成したzipファイルを指定します。
[Lambda function handler and role]欄で、[Handler]は「index.handler」のままとします。[Role name]は適当に設定します。
あとはデフォルトのままで構わないので、[Next]ボタンをクリックします。
設定確認画面になりますので、画面下部の[Create function]ボタンをクリックします。
すると以下のようにLambda Functionが作成されます。
Custom Skillを作成する
Amazon Developer Consoleの上部バーから[ALEXA]をクリックします。画面中央の[Alexa Skills Kit]をクリックします。
[Building Alexa Skills with the Alexa Skills Kit]画面が表示されます。[Add a New Skill]ボタンをクリックします。
[Create a New Alexa Skill - Skill information]画面が表示されます。[Name]はSkillに設定する固有名で、[Invocation Name]が呼び出しに使う名前です。今回は[hello world]と設定していますので、このSkillを呼び出す時は「tell hello world」と話しかけることになります。設定後[Next]ボタンをクリックします。
[Interaction Model]の設定画面が表示されます。ここがCustom Skillの設定のキとなるところで、[Intent Schema]はLambdaに渡すプロパティ、[Sample Utterances]はAlexaに呼びかける文章とIntentの紐つけの定義です。今回は深追いせず、サンプルスクリプトのspeechAssetsフォルダに含まれているファイルの内容を貼り付けます。設定後[Next]ボタンをクリックします。
[Configuration]画面が表示されます。[Endpoint]欄で、[AWS Lambda ARN]をチェックします。リージョンは[North America]をチェックし、Lambda FunctionのEndpointを入力します。設定後[Next]ボタンをクリックします。
以下の画面が表示されたら、Custom Skillが作成され、自分のアカウントのみでテスト可能な状況になっています。
確認する
Amazon Alexaの管理画面でSkillsを確認すると、以下のように追加されたCustom SkillがEnableになっています。アイコンにdevと表示されていますね。
では実際に使ってみます。
さいごに
サンプルスクリプトをCustom Skillとして登録することで、Custom Skillを開発する流れが分かりました。次は実際にCustom Skillの中身まで追ってみたいと思います!