Alexaスキル開発トレーニングをやってみて、詰まったところを解説してみた

3月末から一般販売が開始となり、ますますの普及が見込まれるAmazonのスマートスピーカー『Echo』。

iPhoneアプリと同じようにユーザーがEchoで実現したい機能(Alexaスキル)を開発し、それをほかのユーザーに向けて公開できることも大きな特徴で、公開されているAlexaスキルは日本語対応のものだけでも2018年5月の時点で800以上となっています。

Amazon開発者ブログでは、Alexaスキルを開発して公開してみたいという人向けに、動画と解説記事で構成された全6回の『Alexaスキル開発トレーニング』を公開しています。

Alexaスキル開発トレーニング
https://developer.amazon.com/ja/alexa-skills-kit/training/building-a-skill

本記事では、Alexaスキル開発未経験者である筆者がゼロからトレーニングを受けてみて、かかった時間や詰まったポイントなどを紹介していきます。

 

筆者のトレーニング受講前のスキルセット、開発環境

参考までに、筆者のトレーニング講習前のスキルセットや開発環境を共有します。

  • 10年ほど前までシステム開発をやっていたため、最低限のプログラミング知識はある
  • Amazon開発者アカウント、AWSアカウントは持ってない
  • AWSを用いた開発経験は無い
  • Alexaスキルの開発はもちろん初めて
  • Echoは所有しているものの、ほぼ使わず放置
  • PC環境はWindows10、ブラウザはChrome

では、ここから自分がトレーニングを進めた流れを共有しながら、かかった時間や詰まったポイントを紹介していきます。

 

はじめに:トレーニングの概要把握(Alexa Skills Kitの概要など)

トレーニングの全体像を最初に把握するために、全6回の動画をまとめて見るのがオススメです。もちろん、学習前なのでわからないキーワードも出てきますが、トレーニング全体を通して学ぶ内容を把握することができるため、その後の学習をスムーズに進めることができるでしょう。

 

第1回:初めてのスキル開発(開発用アカウント、AWSアカウントの開設、Alexaシミュレータの使い方など)

・かかった時間
45分

・できるようになること
Amazon開発アカウントとAWSアカウントでの開発環境が使える
Alexaシミュレーターが使える(Echo実機が無くても動作確認ができる)
Alexaへの入力と、それに対する出力を確認できる

・所感
Amazon開発者アカウント、AWSアカウントの開設作業などがあり、全6回の中で最も時間がかかるトレーニングになりました。実習内容そのものは、解説記事に書かれたとおりにやっていけば問題なく進むと思います。

全6回の解説記事は、前半=その回で使用する重要な概念などの解説、後半=実習、という構成になっているのですが、関連する知識のない状態で前半の解説を理解するのはかなり難しいと思います。

そこで、「まずは後半の実習を書かれたとおりにやってみる→前半の解説を見ながらソースコードの該当箇所を確認したり、コードを変更してみる」の順でトレーニングを進めると良いでしょう。

今回のトレーニングで詰まりやすかったポイントを、1箇所紹介します。解説記事の第6項目「6.以下の手順に従い、Lambda関数を作成します。」に記載されている「h.関数コードのコードエディタ部分には、設計図で選択したテンプレートの index.js の内容が表示されます。…」の部分です。解説記事の手順通りに実習を進めたところ、指定エリアにindex.jsの内容が表示されずにLoadingメッセージが表示され続けていました。

▲筆者トレーニング実施中にindex.jsの内容が表示されずLoadingで止まってしまった画面

調べてみたところ広告ブロッキング機能が悪さをしている可能性があるとのこと。筆者の場合はChrome拡張アプリのAdBlockを使用していたので、Lambda開発環境のドメイン( https://ap-northeast-1.console.aws.amazon.com/ )を広告ブロック対象から除外することで正常に動作するようになりました。

▲AdBlockのカスタマイズ画面

正常に動作する場合はすぐに該当箇所にコードが表示されるため、Loading表示が10秒以上続く場合には、ブラウザの広告ブロック機能など確認してみるとよいと思います。

 

第2回:対話モデルとAlexa SDK(Alexa、Lambda環境の復習など)

・かかった時間
30分

・できるようになること
星座を入力して、今日の運勢をランダムで出力するという対話の構築

・所感
この回から本格的にスキル開発が始まります。

トレーニングは開発ツールの使い方を学ぶ要素が強く、スキルの内容を決めるソースコードは解説記事中のソースコードをコピーして開発ツールの該当箇所に張り付ける形で進みます。特定のプログラミング言語に関する知識が必要というわけでないのでご安心ください。

この回から、実習部分の解説の記述が「画面のスクショを並べて掲載→説明テキストを下にまとめて記載」とやや分かりにくくなっています。スクショ箇所は飛ばし、説明テキストがまとまってる部分を読みながら実習、分からない場合だけスクショを遡って確認するのがオススメです。

▲テキストでの説明に従って実習を進め、該当箇所が分からなかったら戻って確認がオススメ(出典

 

第3回:音声ユーザーインターフェースの設計(Alexaとの会話内容のデータ保存など)

・かかった時間
10分

・できるようになること
会話の内容(一度伝えた星座情報)をAlexaの内部データとして記憶して、続きの対話に活用する

・所感
特に問題なく、スムーズにトレーニングを進めることができました。

 

第4回:データの保存(AWSのデータベース・Amazon DynamoDBの活用など)

・かかった時間
10分

・できるようになること
Alexaに伝えた星座情報をAWSのデータベースサービス(Amazon DynamoDB)に保存して、一度スキルを終了してもその情報を使えるようにする

・所感
今回のトレーニングでは、解説記事で指定されているソースコードに間違いがありました。

解説記事の2項目め「ステップ2 対話モデルの修正」で使用するソースコードを見てみましょう。ソースコードを解説記事の指示どおりにJSONエディターにコピーして保存するとエラー(Bad String…)が表示されてしまいます。

JSONエディターにコピペした段階で2行目の左端に赤いエラー表示が出ますので、その警告に従って2行目に表示されている“{”を消すと、エラーは解決します。

▲JSONエディタにソースコードをコピーすると、2行目の左端に赤枠で×マークが表示。

 

第5回:アカウントリンクとホームカード機能(Amazonアカウントと連携してユーザー情報の呼び出しなど)

・かかった時間
20分

・できるようになること
Amazonアカウントと連携して、ユーザー情報にアクセスすること(ユーザーの登録名を取得して読み上げる)

・所感
Amazonのユーザーアカウントとはいえ、既存サービスとの連携ができたことで、Alexa(Echo)で他サービスと連携した機能開発ができそうだ、と感じられる内容でした。

解説記事のステップ5以降でスマホのAlexaアプリを使用する箇所があります。これはスマホアプリのことなのですが、筆者は着手し始めたときスマホアプリのことだと思わず、Alexa開発メニューなどをしばらく探してしまいましたので、分かりづらいかもしれません。

Alexaのスマホアプリをインストールしていない人は、このタイミングでインストールし、Amazonアカウントとの紐づけをしておきましょう。

 

第6回:スキルの審査と公開(Alexaスキルの公開)

・かかった時間
5分

・できるようになること
Alexaスキル公開時の注意点や関連ドキュメントについて理解できる

・所感
最終回である第6回は、実習は無く、スキル公開の審査内容やスキル公開後についての説明のみでした。スキル公開などの実習は無いため、解説を読むのみで問題なく終了しました。

 

まとめ

全6回のトレーニングを受けた結果をまとめます。

  • トレーニング受講時間は、全体で2時間くらい
  • Echoの実機が無くてもシミュレーターでテストまで実行可能
  • 内容としてはAlexaとAWSの開発環境のトレーニングを受けるイメージで、スキルの内容を決めるソースコードについては、与えられたものをこの場所にコピペして進める形
  • 特定のプログラミング言語の知識が必要というわけではない

解説に従って進めていけば動くものができるので、Alexaスキルでとにかく何か作ってみたいという方は、ぜひ試してみてはいかがでしょうか。

SHARE

RELATED

  • お問い合わせ
  • お問い合わせ
  • お問い合わせ