Amazon Echo Dotにて弊社ブログの投稿数を取得するAmazon Echo(dot)用のcustom skillを作成します。
- 開封の義
- Amazon Echo Dot初期設定編
- Amazon DeveloperConsoleを有効化
- Lambda function作成
- Amazon DeveloperConsoleよりAlexa Skillを登録 <- 今回はこちら
※Amazon EchoやAmazon Tap, Echo dotは日本の技適を通っていませんので、日本国内での利用は行なえません、ご注意下さい
前回で作成したLambda functionをskillとして利用するための繋ぎ込みを行います。
手順2で作成したAmazon DeveloperConsoleにログイン後、ヘッダメニューのALEXAを選択し、右上の「Add a NewSkill」を選択後 下記のように設定します。
Skill information
Name : Alexa Appに表示される名前
Invocation Name : skillを呼び出すキーワード Alexa, ask [Invocation Name] でこのskillが実行されます。
Interaction Model
こちらで対話モデルを定義します。
詳細は下記記載のリンク先より参照下さい、ビルトインの定形語句等もあり、奥深いです。
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference
Intent Schema
会話の構造を定義します。
通常の会話で変数的になる部分をSlotとして定義する事が出来ます。
今回は最もシンプルな例で下記となります。
1 2 3 4 5 6 7 |
{ "intents": [ { "intent": "HowManyBlogsIntent" } ] } |
Custom Slot Types
上記と組み合わせて利用しますが、今回は利用しません。
Utterances
intent と 発話されうる英語文章の紐付けを定義します。
今回は1つしか登録されていないのであまり意味をなしていませんが、今日の曜日は?、今日は何曜日?といった異なる文章を取りまとめて対応する事が出来ます。
今回は下記を指定しております。
1 |
HowManyBlogsIntent get count |
複数書く場合は下記のようになります
1 2 |
HowManyBlogsIntent get blog count HowManyBlogsIntent get count |
Configration
利用するLambda functionのARNを指定しています。
Test
標準でEnableとなりますが、念のため確認します。
こちらの状態で下段のテストを実施してみます。
Service Simulator に 「get blog count」と入力し適切な返答が帰って来るか確認します。
実機動作
ここまでの設定で「Alexa, ask blog get count」の発声でブログポスト数を返してくれる準備が整いました、実施してみましょう!
お手軽デバッグ
動作しない時は下記ポイントを調べます。
アプリ側でSkillが登録され、有効か
携帯アプリのメニューからSkillsを開き、右上のYour Skillsにアクセスすると有効なスキルを確認する事が出来ます。
こちらに登録した名前のSkillがあるかどうか確認します。
認識された内容の確認
携帯アプリのHome画面にて Alexaが聞き取った内容とそれに対するアクション、また発話された音声も含めカード形式でどんどん追加されていきます。
上記が正しいのに正しい応答を返さない
Skill Information の Invocation Name が意図している物かどうか再確認
これ以上のDebugはLambdaが適切に呼び出されているか、DeveloperコンパネのSkill Metricsや、Cloudwatch等から確認が必要となります。
この連載を通じて出来上がるもの
単独で動作しますが、自分の発音の英語を5回に1度程しか聞き取ってくれないため(悲)、PCにて喋らせております。
PC - 「Alexa, ask blog get count」
Amazon Echo Dot - 「16 Blog posts Today」
この間に自分の作成したLambda funtcionを通っていると考えると感激モノですね!
公式ドキュメント
- Choosing the Invocation Name for a Custom Skill
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/choosing-the-invocation-name-for-an-alexa-skill - Alexa Skills Kit Custom Interaction Model Reference
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference