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


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

1.3. 対話モデルの作成
スキル情報を保存後、「次へ」または「対話モデル」をクリックし、対話モデル設定画面に切り替えます。ここではスキルビルダー(ベータ)を使ってみます。

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

また、用意されていないスロットタイプを使用したい場合は、custom slot typeで作成することもできます。


1.3.2. Intents追加
そして、実際の音声コマンドにあたるcustom intentを作成します。Intent名を決め、「Create Intentボタン」を押します。

その後、発話サンプル表現を定義していきます。まず、引数が必要な場合は右側からSlotを作成します。Slot名を決め、Slot Typeを選択します。

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

1.3.3. 保存・ビルド
「Save Model」を押して保存し、「Build Model」でビルドして成功すれば対話モデルの作成は終了です。

1.4. 設定
右上の「Configuration」を押して設定画面を開きます。

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

1.5. テスト
先ほど設定した音声コマンド(Intentの発話表現部分)を入力してテストを実行して正しいレスポンスが返ってくれば成功です。
2. Lambdaファンクション開発
まとめ
参考
エンジニア募集
エキサイトではエンジニアとして一緒に働いてくださる方を新卒採用と中途採用で募集しています。詳しくは、こちらの採用情報ページをご覧ください。