Alexa Skillの作り方の基礎
2017年 12月 23日
このエントリーは、エキサイト Advent Calendar 2017の12/23の記事です。
E・レシピ担当の長谷川です。最近日本でも販売が開始されたAmazon Echoですが、今回はその拡張機能であるAlexa Skillの開発方法について書きたいと思います。 Lambdaファンクション開発については今回はあまり触れません。
E・レシピでは年度初めぐらいから音声市場に対するアプローチを考え、現在はフラッシュニュースという形でAlexa Skillを提供しています。最初にサービス導入検証のために開発した当時と比べ、現在は「Alezaスキル開発トレーニング」に開発の解説が記載されていたり、web上に多くの記事が書かれたりしていて、参考にできる情報は多くなってきていますので、常に最新の情報を参考にされることをオススメします。
0. アカウントの作成
スキル開発のため「Amazon Developerアカウント」と「AWSアカウント」が必要になるので、アカウントの発行をします。アカウント取得済みの場合はそのアカウントを使用してください。
1. Alexa Skill開発
1.1. スキル作成
「Amazon 開発者ポータル」にアクセスして、サインインして、「Developer Console」を開きましょう。そして、「Alexa」->「Alexa Skills Kit 始める」->「新しいスキルを追加する」とクリックしていき、スキルを作成します。



1.2. スキル情報設定
以下の情報を入力して、保存ボタンを押します。

- スキルの種類: カスタム対話モデル
- 言語: Japanese
- スキル名: 任意のスキル名
- 呼び出し名: 任意の呼び出し名(参考: カスタムスキルの呼び出し名を決定する)
1.3. 対話モデルの作成
スキル情報を保存後、「次へ」または「対話モデル」をクリックし、対話モデル設定画面に切り替えます。ここではスキルビルダー(ベータ)を使ってみます。
「Intent」はスキルが実行可能なアクション定義、「Slot」はIntentの引数にあたります。

1.3.1. Slot Types追加
Intentの引数の定義を行います。まず、左側の「Slot Types」の「ADD+」をクリックします。そして、使用したい引数の定義を選択します。スロットタイプの一覧などは「スロットタイプリファレンス | Custom Skills」に記載されています。(Intent作成時に自動で追加されるので、この作業は省いても構いません)

1.3.2. Intents追加
続いて、左側の「Intents」の「ADD+」をクリックして、Intentを追加していきます。標準的なIntent(「キャンセル」や「次」など)は予め用意されているので、必要なものを追加します。(参考: 一般的標準インテント | Custom Skills)

そして、そのSlotを使用または使わずに、発話サンプルを下記のように追加します。ここで定義する文章がそのまましか使えないという訳ではなく、Alexa側でよしなに解釈してくれます。したがって、様々なパターンを定義することによってより柔軟な会話表現に対応できるようになります。

1.3.3. 保存・ビルド
1.4. 設定
今回はAWS Lambdaを使用するため、「AWS Lambda ARN(Amazonリソースネーム)」を選択して、デフォルトの欄に関数のARN(後述)を貼り付けます。それ以外はそのままで「保存」「次へ」に進みます。

1.5. テスト
先ほど設定した音声コマンド(Intentの発話表現部分)を入力してテストを実行して正しいレスポンスが返ってくれば成功です。
2. Lambdaファンクション開発
「Alexaスキル開発トレーニングシリーズ 第1回 初めてのスキル開発」に詳しく説明が載っているので、ここを参考に作成できます。作成したLambdaファンクションで表示されるARN(Amazonリソースネーム)を上記の「Configuration」の「デフォルト」に設定することでスキルとLambdaの接続が完了します。
まとめ
今回はAlexa Skill開発について紹介しました。 Lambdaファンクション開発については今回は触れることができませんでしたが、「Alexaスキル開発トレーニングシリーズ 第1回 初めてのスキル開発」などの参考記事を見れば開発できると思います。これからどう音声市場が発展していくのか楽しみです。
参考
by ex-engineer
| 2017-12-23 00:00







