LoginSignup
21
8

More than 5 years have passed since last update.

Amazon alexa Skills をイチから作ってみたら(休憩とりまくって)5時間程度でできました

Posted at

Amazon Echoを購入することができたので、せっかくなのでSkillをつくってみようかなと。
アドベントカレンダーですけど、とくにネタっぽいというわけでもなくとにかくユルくやります:information_desk_person:

どうせなら、自分が使いたいようなもの作ろうかなと思った次第です。
寒くて余計に億劫になりがちな運動、そのモチベーション上げてくれるSkillあったらうれしいのは?!

よっしゃ、:muscle:筋トレに使えそうなスキルつくろ!

…もうありました:joy:

こまった。

なお、現在この投稿日の前日です。
サクッと実装できるものつくってみます!:raising_hand:

やったこと

自分の言ったことに対して、とある返答をしてくれる機能を実装してみました。

・しんどいなぁ…ていうとき、キーワードで話しかけたら返答してくれる内容
※ちなみにAlexaになにかしら返答くれる機能は既にあります。

:gear:Amazon alexa skill の超簡単な構成:gear:

  • フロント側:実際の音声インターフェイス→Alexa Skills Kit
  • バック側:入力された音声指示からの処理して返す→Lambda

開発画面

Skillそのものの開発手法は既にいろんな方が紹介しているので省略します。
今回は自分でつくったところだけ。

Amazon alexa skill

対話モデル作成用のGUIが用意されているので、作業がやりやすい!

skill画面.png

Lambda

alexa skills kitをトリガーにしてLambda関数をうごかす仕組み。
Lambda1.png

今回の関数は Node.js で書きました。
音声入力があった場合にLaunchRequest が動作し、単純に返答するだけの処理です。
とってもシンプルですね!
lambda_js.png

ちなみにpythonだとより複雑な処理も書けるようですが今回はパス:slight_smile:

いざテスト

alexa skills kitのテストシミュレータ画面です。

エラー発生

応答がこない…:thinking:
テストエラー.png

Lambda側のエラーを確認してみる
エラーログ.png

Unhandledのイベントが発生してしまい、なおかつそのハンドラが存在しないので怒られていた。

修正

Unhandled を追記する。(あとalexaのアクションをaskからtellに変更)
lambda修正.png

うごいた!:hugging:
テスト成功.png

実機でも試してみる

Skills Beta Testing を使う

公開情報や、プライバシーとコンプライアンス情報とかを設定すると実際に公開しなくても
ベータテストとして、メール等で招待したユーザーのみ実機での動作確認が可能となる機能です。

招待されると、Amazon Echo(alexa)の設定画面はこんな感じ。アイコンの画像は適当の極みです。
ちなみに、Androidスマホ上からはうまくこの画面に飛ばなかったので、PCのブラウザ上で開きました。
「スキルを有効にする」と、手持ちのEchoで使えるようになります。(画像は既に有効化済み)
alexa設定画面.png

完成:dancer:

:speaking_head:実際に話しかけて、応答してくれる動画を載せようかと思ったのですが、自分の声が入るのが嫌なので辞めました:relaxed:
でも、ちゃんとEchoは応えてくれたので満足です。

感想

alexaのskill開発はとても簡単。
もっと複雑な処理の場合、pythonでなら実現できそう。
python、もっと勉強しようかなと思いました。

なお、今回作ったSkillは公開しない予定です:sunglasses:

本開発作業はAWSやAmazon Developer Servicesのアカウント作成の工程から始めて、実機テスト完了までかかった時間がタイトル通り、大体5時間くらいでした。集中力途切れまくりでした。

最後に、ちょうど半額セールがはじまったのでgoogle home miniも買いました。
こちらもどんなものか楽しみです:stuck_out_tongue:

21
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
8