このトレーニングは6回のシリーズで、Alexaスキルの基礎、仕組み、スキルの開発と認証まで、幅広い内容を解説します。
第1回の今回は、AlexaとAlexa Skills Kitの概要を理解し、Alexaスキル作成の実習を通してスキル作成手法を習得します。
1. Alexaとは
Alexaは、音声によるユーザーインターフェースを使って、クラウドベースでユーザーにさまざまな体験を届けるサービスです。Amazon Echoをはじめとする様々なデバイスで利用することができ、ユーザーごとの異なる設定や振る舞いを理解することで、パーソナライズされた音声体験を提供します。
Amazon Echo
Amazon EchoはAlexaに対応する、代表的なデバイスです。音声で操作するハンズフリーのスピーカーで、ユーザーは好きな音楽を再生したり、電気をつけたりと、Alexaの持つ様々な機能を利用できます。 また、ニュースやスポーツの結果、天気などの情報を音声を通して知ることもできます。Echo以外にも、外部スピーカーを接続できるEcho Dotなどの製品もあります。
AVSとASK
Alexaの大きな特徴として、サードパーティや個人の開発者による独自拡張があります。拡張の仕組みは大きくわけて2種類があり、それぞれ以下の名称で公開しています。
スキル開発をより簡単に、早くできるようにするのがAlexa Skills Kit(ASK)です。ASKにはセルフサービスAPI、ツール、ドキュメント、コードサンプルなどがあります。本トレーニングでは、Alexaスキルについて主に扱うため、Alexa Voice Serviceについては詳しく触れることはありませんが、AVS Device SDKを利用することで、家電や自動車などへAlexaの音声体験をプラスするためのプロトタイプないし製品の開発を行うことができます。
2. Alexaスキル
Alexaに開発者によって追加された機能をスキルと呼びます。既に世界では、25,000を超えるスキルが開発者により開発されています。
Alexaスキルには、主に以下のような種類があります。
カスタムスキルは発声内容に応じた返答を返す汎用のスキルで、他のスキルは専用のAPIが用意された用途に特化したスキルです。Alexaスキルで実現したいことに近いスキルの種類を選択し、スキルの開発を進めましょう。本トレーニングでは、主にカスタムスキルについて解説します。
開発したカスタムスキルは、AmazonのAlexaスキルストアで公開することができます。スキルの公開については、第6回で紹介します。
3. スキル実行の仕組み
Alexaカスタムスキルは、以下の流れで実行します。
Alexaサービスのリクエスト先は、AWS Lambdaのほかに任意のWebサービスを設定することもできますが、今回は以後Lambdaを前提として解説します。
今回の実習では、スキル開発の流れを体験します。まずはじめに必要なアカウントの作成、続いてAlexaスキル開発およびAWS Lambdaの構築と紐づけ、最後にサービスシミュレーターを用いて作成したスキルの動作を確認します。事前に必要なものを準備し、ハンズオンを進めて下さい。
必要なもの
スキルを開発するためにはAmazon DeveloperアカウントとAWSアカウントが必要です。取得済みの場合はログインしておきましょう。
■Amazon Developerアカウントの発行
■AWSアカウントの発行
こちらのページ(https://aws.amazon.com/jp/register-flow/ )の手順に従ってください。
Amazon開発者コンソールでは、Alexaスキルの作成や設定を行います。ここでは、公開されている宇宙の豆知識を返すスキル( http://alexa.design/fact-jp )を用いてAlexaスキルを作成します。
1. 以下の手順でスキルの作成画面を表示する
1-1. 開発者コンソールの「ALEXA」メニューをクリック
1-2. Alexa Skills Kitの「始める >」をクリック
1-3. 画面右上の「新しいスキルを追加する」をクリック
2. [スキル情報]画面で以下のようにカスタムスキルを設定する
2-1 [スキルの種類]は「カスタム対話モデル」が選択されていることを確認
2-2 [言語]は「Japanese」(日本語)を選択
2-3 [スキル名]は「MyFactSkill」と入力]
2-4 [呼び出し名]は「宇宙豆知識」と入力
2-5 [グローバルフィールド]は既定のままにし、[保存]をクリック
2-6 画面右下に出てくる[次へ]をクリック
3. [対話モデル]画面では、以下のように設定する。
※[Skill Builderを起動する]ボタンをクリックしないように注意する。クリックした場合は、遷移した画面の一番下にある[Leave Beta Preview]をクリック、[Yes]を選択して元の画面に戻ること
3-1. [インテントスキーマ]には、以下のJSONをコピー&ペーストで入力する
{ "intents": [
{ "intent": "GetNewFactIntent" },
{ "intent": "AMAZON.HelpIntent" },
{ "intent": "AMAZON.StopIntent" },
{ "intent": "AMAZON.CancelIntent" }
]}
3-2. [カスタムスロットタイプ]は空のままにする
3-3. [サンプル発話]には、以下のテキストデータをコピー&ペーストで入力する
GetNewFactIntent 豆知識
GetNewFactIntent 豆知識を教えて
GetNewFactIntent 他の豆知識
GetNewFactIntent 雑学
GetNewFactIntent 雑学を教えて
GetNewFactIntent 他の雑学
GetNewFactIntent 知識
GetNewFactIntent 何か
GetNewFactIntent 何か教えて
3-4. [次へ]をクリック
4. [設定]画面に遷移したらWebページを開いたままにして、次のステップに進む
続いて、AWS Lambdaを構成します。AWS Lambdaは、サーバー管理が不要なプログラムの実行サービスで、カスタムスキルのためのクラウドベースサービスとして簡単に利用できます。Lambdaでは実行するプログラムを「関数」という単位で管理します。今回は公開されているサンプルスキルで関数を定義し、Alexaスキルから呼び出せるよう設定します。
3. 画面右上のリージョン選択メニュー「アジアパシフィック(東京)」を選択する。
4. 画面左上の「AWSサービス」のテキストボックスに「lambda」と入力し、表示される候補から「Lambda」をクリックする
5. AWS Lambdaの初期画面が表示されたら、「関数の作成」ボタンをクリックする
6. 以下の手順に従い、Lambda関数を作成します。
6-1. [設計図の選択]画面では「一から作成」ボタンをクリック
6-2. [トリガーの設定]画面では[トリガーの追加]ダイアログ左側の点線枠をクリックして「Alexa Skills Kit」を選択し、「次へ」をクリック
6-3. [関数の設定]画面の[基本的な情報]では、以下を入力する
6-4. [Lambda関数のコード]では以下を選択、他の項目は既定のままにする
6-5. [Lambda関数ハンドラおよびロール]では以下を選択、他は既定のままにする
6-6.[次へ]ボタンをクリック
6-7.設定内容を確認し、[関数の作成]をクリック
6-8. MyFactSkill関数が作成されたら、画面右上の「テスト」をクリック
6-9. [サンプルイベントテンプレート]から「Alexa Start Session」を選択
6-10. [保存してテスト]ボタンをクリックしてMyFactSkill関数の実行をテストする。
6-11. 「実行結果: 成功」と表示され、[詳細]をクリックし以下のようなJSON形式の結果が表示されることを確認する。
6-12. 画面右上の「ARN」に表示されるARN(Amazonリソースネーム)をコピーしておく
ステップ2で作成したAlexaスキルから、ステップ3で作成したMyFactSkill関数を呼び出すように設定します。
1. Amazon開発者コンソールを開き、My Fact Skillスキルを選択、[設定]タブを表示する
2. [エンドポイント] > [サービスエンドポイントのタイプ]では「AWS Lambda ARN (Amazonリソースネーム) 」を選択
3. [デフォルト]にステップ3でコピーしておいたMyFactSkill関数のARNをペーストする
4. 他の項目は既定値のまま、[次へ]ボタンをクリック
これで設定は完了です。
Amazon開発者コンソールにはスキルの動作を再現するサービスシミュレーター機能があります。これを利用して、作成したAlexaスキルの動作を確認します。
1. Amazon開発者コンソールを開き、My Fact Skillスキルを選択、[Test]タブを表示する
2. [サービスシミュレーター] > [テキスト]タブ > [発話を入力してください]に「宇宙豆知識を開いて」と入力し[MyFactSkillを呼び出す]ボタンをクリック
3. [サービスレスポンス]に以下のようなレスポンスが表示され、正常に実行できることを確認する
宇宙の豆知識を返すスキルの作成からサービスシミュレーターでの動作確認までを確認しました。これで、今回の実習は完了です。
第1回では、Alexaと独自のスキルを実行できるAlexa Skills Kitの仕組みについて学習し、スキルの作成から実行までの流れを実習で確認しました。次回は、カスタムスキルの開発に必要な対話モデルについてご紹介します。
(このコンテンツはAmazonとの業務委託に基づいて、クラスメソッド株式会社が製作しました)