Alexaのスキルとは? その開発に必要な基本概念特集:はじめてのAlexaスキル開発(2/3 ページ)

» 2018年03月02日 05時00分 公開
[かわさきしんじInsider.NET編集部]

スキルの作成

 まずは、Alexa用のAmazon開発者ポータルで右上にある[あなたのAlexaコンソール]−[Skills]を選択する。サインインをしていなければ、サインイン画面が表示されるので、メールアドレスとパスワードを入力する。

Alexa用の開発者ポータル Alexa用の開発者ポータル

 これにより、次のような画面が表示される。ここで[Alexa Skills Kit]にある[始める]ボタンをクリックしよう。その隣にある[Alexa Voice Service](AVS)は本稿の冒頭で述べた「マイクとスピーカーを持ち、インターネットに接続可能なデバイス」でAlexaの機能を活用できるようにするためのものだ。ASKは「Alexaをサポートしているデバイスで利用できるスキルを開発するためのもの」であり、AVSは「Alexaの機能を標準では持たないデバイスをAlexa対応デバイスとするためのもの」ということになる。後者を使うと、例えばRaspberry PiをAlexa対応デバイスとすることが可能だ。詳細についてはAVSのドキュメントAVS Device SDKのドキュメントなどを参照されたい(本稿では取り上げない)。

[Alexa Skills Kit]にある[始める]ボタンをクリックする(赤枠内) [Alexa Skills Kit]にある[始める]ボタンをクリックする(赤枠内)

 [始める]ボタンをクリックすると、次のような画面が表示される。「新しいコンソールのβ版を利用可能」と表示されているが、以下では旧来のコンソールを使用する(β版のコンソールは英語表記のため)。

右上の[新しいスキルを追加する]ボタンをクリックする(赤枠内) 右上の[新しいスキルを追加する]ボタンをクリックする(赤枠内)

 ここでページ右上にある[新しいスキルを追加する]ボタンをクリックすると、次のような画面が表示される。

[スキル情報]タブ [スキル情報]タブ

 そこで、新規に作成するスキルに関する情報を以下のステップごとに入力していく。

  1. スキル情報
  2. 対話モデル
  3. 設定
  4. テスト
  5. 公開情報
  6. プライバシーとコンプライアンス

 ただし、本稿では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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。