AlexaのSkill関係の用語の整理

Alexaのスキルの作成をし始めると、Invocation Name、Intent、Utterance、Slotなどの初めて見るような新しい用語が出てきます。それらの用語の関係性がわからないとスキルの設計をするのも一苦労だと思うので整理してみます。

スキルで使われる用語の関係性や構造を考えるとき、『どのスキルに』『何を』頼むのか、というような視点で構造を理解するとわかりやすいです。

skill-structure-rev

まず、一番大事なのがInvocation Name。ユーザーがInvocation Nameを喋ることで『どのスキル』を立ち上げるのかが特定されます。
例えば、「ask NASA Mars」と言えばNASA Marsのスキルが、「ask Weather Sky」と言えばWeather Skyスキルが立ち上がります。
一般的に、Invocation Nameには会社名やサービス名、商標などが使われます。

Invocation Nameで『どのスキルに』を特定したら、次にユーザーがそのスキルに対して依頼できることをIntentとして定義します(1つのスキルで複数のIntentを持つことができます)。
例えば、飛行機などの旅行情報を提供してくれるKAYAKスキルには、『飛行機のチケット代を教えて』と依頼するためのIntentが定義されています。そのチケット代を調べるIntentを起動するためにユーザーが発話しうる文章群をUtteranceとして定義します。
Utteranceに「how much it costs to fly」というフレーズを定義しておくと、ユーザーがそのフレーズを喋ったとき、KAYAKスキルは『ユーザーは飛行機のチケット代を教えてほしいと言っているので、そのIntentに対応する処理をすれば良いのだな』ということが分かるようになっています。

何のIntentを起動するかを言うことをUtteranceで特定した際、ユーザーから追加の情報を受け取りたい場合もあります。
例えば、『飛行機のチケット代を教えて』というIntentであれば、『どこから』『どこまで』という2つの追加情報をユーザーから受け取らないとチケット代を調べることができません。Utteranceには追加で受け取る情報をSlotという形で持たせることができ、いくつのSlotがあるのかというのを各Utteranceごとに定義することができます。また、Slotそれぞれについて必須・任意の設定が行えます。
もちろん、追加情報を受け取る必要のないIntentの場合(NASA Marsの『キュリオシティーの最新情報を教えて』など)、Slotは省略することができます。

このように、スキルの作成者はInvocation Name、Intent、Utterance、Slotの4つを上手く設計・定義していくことによって、ユーザーが喋った言葉をどのような意図として解釈すればいいのか、ユーザーから何の入力を受け取ればいいのかということをAlexaに教えていく構造になっています。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s