【初心者向け】【備忘用】AlexaとLambdaの連携 -シミュレータツール(echosim.io)でのテストまで-


最初に

この記事は、Amazon echo(echo show)のためのサービスを作ってみたい!けど、まず最初になにやればいいの??って人向けの記事です。基本、自分の備忘用です。間違った内容などあれば指摘してもらえるとありがたいです。

Amazon echoは、現在、日本未発売かつ、日本語自体も未対応です。
(2017/07/17現在)※英語(US,UK),ドイツ語には対応

ただ、echoに限らずですが、スマートスピーカー周りは今後面白くなりそうなので、
今のうちにフライングで触っておいてみようと思って触ってみました。

触るにあたり、導入からテストまで一連の流れでわかりやすい記事がなかなか見つけられなかったのでそれならば書いてしまおうと思って書きました。
最終的に、github上に、とてもわかりやすい記事があったので導入に関しては、そちらの記事を参照してもらえれば誰でも出来ると思います。

対象者

・AWSは触ったことあるけど、Lambdaは触ったことない人(僕です)
※コード一切書かずにテストするところまでは出来るので、プログラマ・エンジニアじゃなくても出来ます。ぜひ触ってみて下さい。

用語

Alexa
Amazonが提供している音声認識サービスです。Alexa対応デバイス(echo など)からの音声入力をもとに作動します。
Skill
ユーザのAlexa対応デバイスに向けた動作にあわせて動くプログラムです。
Lambda(ラムダと読みます)で作るのが一番簡単かと思います。
作ったskillは、Alexa App上に公開出来ます。(amazonの審査あり)
echoでやりたいことを作ることが出来ます。
例)東京都にある図書館の開館、閉館時間を確認できるようにしたいなど。
現状、大きく分けて、
以下の4つのスキルを作れます。
・Custom Skills
自分がやりたいことを自由に作成できる。
・Smart Home Skills
スマートホーム機能に特化したスキル
・Flash Briefing Skills
ニュースの配信サービス用のスキル
・Video Skill
ユーザーがクラウド対応ビデオサービスを制御できるスキル

触るにあたり登録が必要なもの

AWS※登録していない人は、以下参考に登録。
 https://aws.amazon.com/jp/register-flow/
→とりあえず、lambda,S3,Iamを触ります。
 2017/07/17現在、alexa対応は、バージニア北部、北アイルランドリージョンしか対応していません。今のところ、その2つで作成しておいたほうが良いです。
amazon.developer(スキルを作成)
https://developer.amazon.com/ja/
Alexa App(作成したスキルを確認、有効にするために触る)
http://alexa.amazon.com/spa/index.html
echosim.io(シミュレータツール)
https://echosim.io

触ってみて、一番いけていないなと思ったのは、この点。全部同じAmazonが出しているのに、
(echosim.ioはサードパーティ製とamazon公式ドキュメントには書いているが、amazonが作ったシミュレータとか書いている記事もあるので実際どうかは不明)
4つも行き来するのはかなりめんどくさい。

導入

とりあえず、シミュレータ動かしてみたいくらいならば、以下の記事を参考にすれば、基本すんなり出来ると思います。
本当に分かりやすかったです。ありがとうございます。
https://github.com/sparkgene/jawsdays-ask-handson-advanced/wiki
※記事の中でも書いていますが、jawsdays-ask-handson-advanced-master.zipを解凍し、その中にfunc.zipがあるのでそれをアップロードして下さい。

参考

以下を主に参考にして、学習、導入させてもらいました。
amazon developoer公式ドキュメント
alexaスキルキットでスキルを磨く
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/getting-started-guide
Amazon Alexaの基礎知識
http://dev.classmethod.jp/cloud/aws/amazon-alexa-basic-knowledge/