皆さん、どうも。Smartio開発部のシバトウです。
スキル開発に当たって、ユーザーの発言を想定した対話モデルを「インテント」として作成していきます。対話モデルというのはスキルの肝となる部分で、ユーザーとAlexaをどのように対話させるか考えることもスキル作成の楽しみのひとつですよね。
この記事の目次クリックすると該当箇所へ飛べます。
Alexaスキルの開発では自身で作成したインテント以外にも、最初からAlexa内で用意されている「標準インテント(一般的標準インテント, ビルトインインテント)」を利用することがありますね。例えば、「AMAZON.StopIntent」なら”ストップ”という発言を受け取ってスキルを終了する。「AMAZON.YesIntent」ならユーザーの”はい”という発言があったときにどのような処理を行うかを決めるといった具合です。
今回はまず、標準インテントの種類を確認していきましょう。その後で、スキル審査中に標準インテントの動作不備が指摘がされた部分や、それに対してどのような対処を行ったかを紹介していきますね。
標準インテントの種類
標準インテントとして用意されているのは15種類!実にさまざまな種類がありますね。ここでは、それぞれの役割について簡単に説明します。
AMAZON.HelpIntent | “ヘルプ”などの音声に応じ、スキルの使い方や説明を呼び出します。 |
---|---|
AMAZON.StopIntent | “ストップ”などの音声に応じ、スキルを終了します。 |
AMAZON.CancelIntent | “キャンセル”などの音声に応じ、スキルを(一時)停止します。 |
AMAZON.StartOverIntent | “最初に戻って”などの音声に応じ、スキルを最初から実行します。 |
AMAZON.RepeatIntent | “繰り返して”などの音声に応じ、最後に行ったアクションを繰り返します。 |
AMAZON.PauseIntent | “一時停止”などの音声に応じ、進行中のアクションを一時停止します。 |
AMAZON.ResumeIntent | “再開”などの音声に応じ、一時停止中のアクションを再開します。 |
AMAZON.LoopOffIntent | “ループ再生をオフにして”などの音声に応じ、ループ再生機能をオフにします。 |
AMAZON.LoopOnIntent | “ループ再生をオンにして”などの音声に応じ、ループ再生機能をオンにします。 |
AMAZON.ShuffleOffIntent | “シャッフル再生をオフにして”などの音声に応じ、シャッフル再生機能をオフにします。 |
AMAZON.ShuffleOnIntent | “シャッフル再生をオンにして”などの音声に応じ、シャッフル再生機能をオンにします。 |
AMAZON.PreviousIntent | “前”などの音声に応じ、ユーザーがリストの前の項目または音楽に移動できます。 |
AMAZON.NextIntent | “次”などの音声に応じ、ユーザーがリストの次の項目または音楽に移動できます。 |
AMAZON.NoIntent | “いいえ”などの音声に応じ、否定の回答をしたものと判断します。 |
AMAZON.YesIntent | “はい”などの音声に応じ、肯定の回答をしたものと判断します。 |
スキル審査で指摘された標準インテント
自分自身で意図した会話の流れになるようにインテントを設定しているのですが、ついつい標準インテントがあることを忘れてしまいがち。標準インテントの動作が、いとも簡単に想定した会話ラインを崩してしまうから困ったものです。
ここからはスキル審査時に実際に標準インテントの動作について指摘を受けた例、そしてその対処法について紹介していきます!
1.AMAZON.HelpIntent(ヘルプ インテント)
「AMAZON.HelpIntent(ヘルプ インテント)」が指摘されたのは、「アリさん解体新書」のスキルを申請したとき。指摘内容は以下の通りでした!
ユーザーがスキル内の「ヘルプ」をリクエストした際、スキルはユーザーにスキルのコア機能の操作方法を示すプロンプトを返す必要があります。また、ヘルププロンプトはユーザーへの質問で終わり、もしくは発話を促して終わり、応答を受信するまでセッションを開いたままにしておく必要があります。
「何を調べますか?」や「アリさんの何を知りたいですか?」と言った発話を促す言葉を追加すると、ユーザーが発話しやすくなります。
ヘルプインテントでは、そのスキルの使い方を紹介するものと考えていました。そのため、単純に説明するだけで終わっていた点が指摘されました。この問題は会話のボールがユーザーにわたっていることを示すため、ヘルプの文章の最後で発話を促すことで解決しています。
2.AMAZON.RepeatIntent(リピート インテント)
「AMAZON.RepeatIntent(リピート インテント)」が指摘されたのは、「どうぶつABC」のスキルを申請したときのことでした。まずは指摘内容から。
ユーザーがインテント名AMAZON.RepeatIntentを使用して、スキルを起動した際、スキルの応答にリクエストとの関連性がありません。
再現手順:
ユーザー: ゴリーラ
スキル : 正解です。では、第三問。サルは、英語で何と言うでしょうか?
ユーザー:もう一回。
スキル :, 不正解。サルは、英語で, ,(MP3再生) , では、第四問。, ペンギンは、英語で何と言うでしょうか?
これはAlexaのAudioPlayerを利用したスキルにおいての指摘。AudioPlayerを使うスキルでは音声ファイルの再生を前提とするため、「もう1回」ということでリピートの標準インテントが呼び出されるんですね。
本来はユーザーにクイズの答えを言ってもらうためのものなのですが、これにより会話の流れをなしていないとみなされたわけです。この対応には正直悩んだのですが、問題を出す前に「問題は繰り返すことができない(=リピートはできない)」という旨をAlexaに発言させることで解決しました。
まとめ
今回はスキル審査時、実際に指摘される具体例とその対処法について紹介しました。せっかくスキルが完成しても、標準インテントの動きひとつで審査に引っかかることもあるんです。開発したスキルの動作に加え、忘れずに標準インテントについても確認していくことが大事なのです!
皆さんもこのようなスキル審査の壁を越えて、スキルをどんどん公開していきましょう!