まずは、Alexa用のAmazon開発者ポータルで右上にある[あなたのAlexaコンソール]−[Skills]を選択する。サインインをしていなければ、サインイン画面が表示されるので、メールアドレスとパスワードを入力する。
これにより、次のような画面が表示される。ここで[Alexa Skills Kit]にある[始める]ボタンをクリックしよう。その隣にある[Alexa Voice Service](AVS)は本稿の冒頭で述べた「マイクとスピーカーを持ち、インターネットに接続可能なデバイス」でAlexaの機能を活用できるようにするためのものだ。ASKは「Alexaをサポートしているデバイスで利用できるスキルを開発するためのもの」であり、AVSは「Alexaの機能を標準では持たないデバイスをAlexa対応デバイスとするためのもの」ということになる。後者を使うと、例えばRaspberry PiをAlexa対応デバイスとすることが可能だ。詳細についてはAVSのドキュメントやAVS Device SDKのドキュメントなどを参照されたい(本稿では取り上げない)。
[始める]ボタンをクリックすると、次のような画面が表示される。「新しいコンソールのβ版を利用可能」と表示されているが、以下では旧来のコンソールを使用する(β版のコンソールは英語表記のため)。
ここでページ右上にある[新しいスキルを追加する]ボタンをクリックすると、次のような画面が表示される。
そこで、新規に作成するスキルに関する情報を以下のステップごとに入力していく。
ただし、本稿では4の「テスト」までを取り上げる。
まずは上で見た[スキル情報]タブから見ていこう。このページ([スキル情報]タブ)では以下を指定する。
[スキルの種類]とは、カスタムスキル/スマートホームスキル/フラッシュブリーフィングスキルなど前ページで紹介したスキルのうち、どのスキルを作成するかを指定するものだ。デフォルトで選択されている[カスタム対話モデル]が「カスタムスキル」に相当する(上で挙げた3種類以外に[ビデオスキルAPI]も選択肢にあるが、ここでは取り上げない)。
[言語]には使用する言語を指定する。ここではもちろん[Japanese]を選択する。[スキル名]はユーザーに表示されるスキルの名称。ここでは適当に「HelloAlexaFromInsiderNET」としてある。[呼び出し名]は前ページで説明した「Alexa、○○で××して」の「○○」に相当するもの。この名前によって、ユーザーがどのスキルを使用するのか決定される。ここでは「ハローアレクサ」とした。ただし、アプリを公開して、他のユーザーに使ってもらおうという場合には、呼び出し名はしっかりと検討をした方がよい。そのためのガイドラインとしては「カスタムスキルの呼び出し名を決定する」がある。
その他の設定はそのままでページ左下の[保存]ボタンをクリックして、ページ右下の[次へ]ボタンをクリックすれば[スキル情報]の入力は完了だ。
[スキル情報]の入力が終わると、次の画面が表示される。このページでは「ユーザーがしたいこと」すなわち「インテント」や、Alexaとの対話で使用されるフレーズとそのインテントとの関連付けを行う。
ここではインテントの定義には[インテントスキーマ]欄を使用する。ここでは次のようなJSONコードを入力しよう。
{
"intents": [
{
"intent": "HelloAlexaIntent"
},
{
"intent": "AMAZON.HelpIntent"
},
{
"intent": "AMAZON.StopIntent"
},
{
"intent": "AMAZON.CancelIntent"
}
]
}
このスキーマでは4つのインテントを定義しているが、そのうちの「AMAZON」で始まるものは、Alexaがデフォルトで定義している標準ビルトインインテントと呼ばれるもの。例えば、ユーザーが「キャンセル」などとAlexaに問い掛けると「AMAZON.CancelIntent」がスキルに送信される。このインテントを受け取ったスキルは、ユーザーの意図に従ってキャンセル処理を行う必要がある。
一番上の「HelloAlexaIntent」が、ここで使用するスキル独自のインテントとなる。ページ下部の[サンプル発話]では、そのインテントに対応するフレーズを指定していく。
これにはインテント名とフレーズを半角スペースで区切って並べていく。ここでは「HelloAlexaIntent あいさつをして」「HelloAlexaIntent 何かしゃべって」の2つを指定している。「Alexa、ハローアレクサで何かしゃべって」などとユーザーと問い掛けると、それがHelloAlexaIntentとなってスキルへと送られるということだ。なお、実際には、「スロット」と呼ばれる機能を利用して、もっと詳細かつ可変な形でインテントを定義することになる。つまり、「新宿の天気を教えて」「札幌の天気を教えて」のように「天気を教えて」というインテントとその引数となる要素を与えることになる。これについては次回以降に取り上げよう。
入力したデータを保存して、[次へ]ボタンをクリックすると、対話モデルの指定は完了だ。
Copyright© Digital Advantage Corp. All Rights Reserved.