みなさまが開発されたAlexaスキルは、スキルストアへの公開に当たり、 Alexa審査チームが認定審査をさせていただき、 スキルがよいユーザー体験をお届けできるよう、必要に応じてフィードバックをさせていただいています。このブログでは、審査で改善のフィードバックを受けるスキルの傾向を紹介し、事前にご対応いただく方法を紹介します。今回は「サンプル発話」についてです。
サンプル発話にユーザーが発話しそうなフレーズが網羅されていますか?サンプル発話が不足していると、スキルがユーザーのリクエストに正しく反応しない可能性があります。下の再現例をみてみましょう。
スキル名:みんなの水族館クイズ
呼び出し名:みんなの水族館クイズ
再現例:
ユーザー:アレクサ、みんなの水族館クイズをスタートして
スキル:「みんなの水族館クイズ」へようこそ。このスキルでは、大人から子どもまで楽しめる海の動物のクイズを出題します。第一問。サイズが一番大きいのはどの動物?ペンギン、タコ、クジラ、どれかな?
スキルからの問いに対し、ユーザーがどう答えるか考えてみましょう。ユーザーがもっとも発話するであろう返答は、「クジラ」。即ち、答えのみの返答でしょう。また「クジラだと思う」や「正解はクジラ」のように、答えの前後にいろいろな単語をつなげて答えるユーザーもいるでしょう。サンプル発話にユーザーがもっとも発話するであろうフレーズ(ここでは「クジラ」)、そしてその他の発話する可能性のあるフレーズ(「クジラだと思う」「正解はクジラ」など)が含められていないと、スキルが上手く認識してくれない可能性があります。
インテントスキーマ:
カスタムインテント:KotaeIntent
カスタムスロットタイプ:doubutu
サンプル発話(修正前):
KotaeIntent {doubutu} です
KotaeIntent {doubutu} だ
スロット値:
doubutu アザラシ, クジラ, ウミガメ, ペンギン, タコ, イルカ, サメ, フグ
上記のサンプル発話は、「クジラです」また「クジラだ」というフレーズには対応していますが、「クジラだと思う」や「正解はクジラ」などのフレーズ、またもっとも発話するであろう、答えのみのフレーズ「クジラ」をサポートしていません。
サンプル発話(修正後):
KotaeIntent {doubutu} です
KotaeIntent {doubutu} だ
KotaeIntent {doubutu} だと思う
KotaeIntent 正解は {doubutu}
KotaeIntent 答えは {doubutu}
KotaeIntent 答えは {doubutu} だ
KotaeIntent {doubutu} かな
KotaeIntent {doubutu}
など
修正後のように、サンプル発話にもっともユーザーが発話するであろうフレーズ、また発話する可能性のあるフレーズを網羅することで、スキルがより高い確率でユーザーからの発話を認識できるようになります。各カスタムインテントに対し、いろいろな言い方のサンプル発話が含まれていることを、スキルの認定の前にいま一度ご確認ください。
サンプル発話の追加については、下記ページもあわせてご参照ください。
https://developer.amazon.com/ja/docs/custom-skills/best-practices-for-sample-utterances-and-custom-slot-type-values.html
Alexaアプリ(コンパニオンアプリ)やスキルのプロンプト(応答)にて提示されているフレーズがサンプル発話として定義されていますか?サンプル発話として定義されていないと、スキルがそのフレーズの認識に失敗し、スキルの機能が動作せず、満足のいくユーザーエクスペリンスを提供できない可能性があります。
Alexaアプリ上では、サンプルフレーズ、およびスキルの説明文にあるフレーズがサンプル発話として定義されているかどうかをご確認ください。スキル内では、ウェルカムプロンプト、ヘルププロンプト、ユーザーの入力が聞き取れなかった際のプロンプトにて提示されるフレーズを中心にご確認いただくことが必要です。
スキル名:今日の晩御飯レシピ
呼び出し名:今日の晩御飯レシピ
Alexaアプリ内:
サンプルフレーズ①:アレクサ、今日の晩御飯レシピを開いて
サンプルフレーズ②:ハンバーグをお願い
サンプルフレーズ③:エビフライにする
「今日の晩御飯レシピ」では、3つのサンプルフレーズがユーザーに提示されています。このうち、スキルの機能を動作させる為のフレーズをサンプル発話として定義しておく必要があります。ここでは、誤ってウェイクワード、呼び出し名、起動フレーズ(ワンショットの場合では、つなぎ語)をサンプル発話に含めないよう、ご注意ください。ウェイクワードと呼び出し名、起動フレーズについては、下記のページをご参照ください。
https://developer.amazon.com/ja/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#invoking-a-skill-with-no-specific-request-no-intent
サンプルフレーズ①「アレクサ、今日の晩御飯レシピを開いて」は、ウェイクワードと呼び出し名、そして起動フレーズで構成されているので、サンプル発話として定義が必要な部分はありません。
サンプルフレーズ②「ハンバーグをお願い」やサンプルフレーズ③「エビフライにする」は、スキル「今日の晩御飯レシピ」を呼び出した後にスキルの機能を動作させるフレーズである為、該当するカスタムインテントにサンプル発話として必ず定義しておく必要があります。
インテントスキーマ:
カスタムインテント:CookingIntent
カスタムスロットタイプ:food
サンプル発話(修正前):
CookingIntent {food} をお願い
CookingIntent {food} にして
CookingIntent {food}
スロット値(修正前):
food ハンバーグ, エビフライ, 肉じゃが, コロッケ
上記のサンプル発話とスロット値では、サンプルフレーズ②「ハンバーグをお願い」というユーザーのリクエストは、「{food} をお願い」がCookingIntentに、また「ハンバーグ」がfoodスロットに定義されている為、スキルが対応することが可能です。しかしながら、サンプルフレーズ③「エビフライにする」は、「エビフライ」がfoodスロットに存在するものの、「{food} にする」がCookingIntentにない為、スキルが正常に反応しない恐れがあります。ここでは、「{food} にする」をサンプル発話として追加しましょう。
スキルのプロンプト:
再現例:
ユーザー:アレクサ、今日の晩御飯レシピをスタートして
スキル(ウェルカムプロント):ようこそ。「今日の晩御飯レシピ」は、今日の晩御飯をどうしようか迷った時に、料理を提案し、その作り方を教えてくれるスキルです。今晩食べたいのは、ハンバーグ、エビフライ、カレーライスのうち、どれですか?「ハンバーグをお願い」「から揚げがいい」などと答えてください。
ウェルカムプロンプトでは、「ハンバーグをお願い」と「から揚げがいい」というフレーズがユーザーがスキル内で試せる発話例として提供されています。サンプルフレーズ同様に、これらのフレーズもサンプル発話として該当のカスタムインテントに定義されている必要があります。前述したとおり「ハンバーグをお願い」はすでに対応されていますが、「から揚げがいい」はCookingIntentのサンプル発話に「{food} がいい」がなく、またfoodスロットに「から揚げ」がない為、ユーザーの入力に対応できない可能性があります。前述の「{food} にする」と共に、「{food} がいい」をCookingIntentに、また「から揚げ」をfoodスロットに追加しましょう。
サンプル発話(修正後):
CookingIntent {food} をお願い
CookingIntent {food} にして
CookingIntent {food} にする
CookingIntent {food} がいい
CookingIntent {food}
スロット値(修正後):
food ハンバーグ, エビフライ, 肉じゃが, コロッケ, から揚げ
ここでは、サンプルフレーズとウェルカムプロンプトを例にあげましたが、スキルの説明文や他のプロンプトにおいてもフレーズをご提示いただく場合は、同様に該当するカスタムインテントに一致するサンプル発話を定義する必要があります。ユーザーが入力したフレーズが確実にスキルの機能を動作できるよう、スキルの認定の前にもう一度ご確認ください。
サンプルフレーズに関するガイダンスはこちら、スキルの説明文(詳細な説明)に関するガイダンスはこちらをご参照ください。
異なるインテントに定義されているサンプル発話が重複していると、正しいインテントにユーザーのリクエストが届かない場合があります。スキルの機能を正常に動作させるには、各インテントに独自のサンプル発話を定義し、他のインテントのサンプル発話と重複しないようにする必要があります。
下記のスキル「日本の植物図鑑」を例に、いっしょに考えてみましょう。
スキル名:日本の植物図鑑
インテントスキーマ:
カスタムインテント:FlowerIntent, GrassIntent
カスタムスロットタイプ:hana, kusa
サンプル発話(修正前):
FlowerIntent {hana} について教えて
FlowerIntent {hana} をお願い
FlowerIntent {hana}
FlowerIntent 教えて
GrassIntent {kusa} について知りたい
GrassIntent {kusa} をお願い
GrassIntent {kusa}
GrassIntent 教えて
スロット値:
hana 桜, 梅, ツバキ, スミレ
kusa ヨモギ, ネコジャラシ, ナズナ, ドクダミ
スキル「日本の植物図鑑」には、FlowerIntentとGrassIntentの二つのカスタムインテントが用意されています。FlowerIntentとGrassIntentに全く同じサンプル発話が存在し、重複していると、ユーザーがそのサンプル発話を入力した際、スキルがどちらのカスタムインテントをリクエストされているか判断できず、ユーザーの意図と反する動作を行う可能性があります。上記では、FlowerIntentにもGrassIntentにも「教えて」というサンプル発話が含まれている為、重複しています。いずれかまたは両方を修正、あるいは削除する必要があります。
サンプル発話(修正後):
FlowerIntent {hana} について教えて
FlowerIntent {hana} をお願い
FlowerIntent {hana}
FlowerIntent 花について教えて
GrassIntent {kusa} について知りたい
GrassIntent {kusa} をお願い
GrassIntent {kusa}
GrassIntent 日本の草
修正後のサンプル発話では、FlowerIntentの「教えて」が「花について教えて」に修正され、GrassIntentの「教えて」が「日本の草」に変更されています。これにより、FlowerIntentとGrassIntentで発生していたサンプル発話の重複が解消され、ユーザーのリクエストが正しいインテントに届くようになりました。
カスタムインテント同士の重複以外にも、カスタムインテントとビルトインインテントのフレーズが重複している場合は、同様に修正が必要です。ビルトインインテントに含まれるフレーズについては、下記のページをご参照ください。
https://developer.amazon.com/ja/docs/custom-skills/standard-built-in-intents.html#available-standard-built-in-intents
スキルの認定の前に、すべてのサンプル発話を再度ご覧いただき、重複がないことをお確かめください。ユーザーエクスペリンス向上の為、ご協力をお願いいたします。
Alexaスキル認定へのヒント集
Alexaスキル内の広告について
Alexaスキル認定へのヒント:サンプルフレーズ編
Alexaスキル認定へのヒント : スマートホームスキル編
Alexaスキル認定へのヒント : ヘルプインテント編
Alexaスキル認定へのヒント: 詳細な説明編
皆様からのフィードバックは、私たちにとってとても貴重なものです。スキルの認定に関するご意見がありましたら、お問い合わせフォームからいつでもお送りください。
また、 スキル開発時に分からないことがあれば、Alexa開発者フォーラムもご利用ください。フォーラム上でいただいたご質問に、担当がお答えいたします。