Amazon Alexaスキル公開時のフィードバック対応

はじめに

目的

Alexaのスキル公開の手順を解説している記事を見て
あっさり通っている印象を持ち軽い気持ちで臨んだのですが
配信サポートを公開するまでに5回のリテイクを突きつけられました。
スキル公開に苦戦したのはレアケースかもしれないので
その課程と落とし穴の情報共有ができれば思いました。
今思うと拙いところで引っかかっているのもありますが・・・

対象読者

  • Hallo worldレベルから少し進み、自分が求めるスキルを作成し
    実機テストも行い、一般公開前のフィードバックまで進んだ人。
  • 対話型スキルの開発初心者。

今回自作し、公開したスキル

配信サポート

自分の喋る言葉「勝った」「負けたよ」「得点したぜ」「ちょっと黙ってて」「〇〇さんようこそ!」
などに呼応してくれる簡単な対話型スキルです。
Alexa Echo端末の音声出力からPCのライン入力に接続することで、相方のように喋ってくれる・・・はず。
対話内容は開発当時私がプレイしていた「ロケットリーグ」に最適化されています。
簡単なスキルなので、公開も簡単に♪
・・・とはいかなかった。

実際に使っている動画はこちら

公開までに受けたフィードバック

私が今回引っかかったチェック項目は以下の通りです。

  1. 「現在のスキル説明およびスキルの応答内容は、ユーザーにAlexa標準機能とスキルの機能の混同を生じさせる可能性があります。」
  2. サンプルフレーズにサポートされていない起動フレーズが使われています。
  3. スキルの詳細カードに表示される説明には、ユーザーがスキルの使用方法について十分に理解できる正確な情報が含まれていません。
  4. 特定のインテント名または発話例を使用してスキルを起動した際、スキルの応答が理解できません。
  5. ユーザーがスキル内の「ヘルプ」をリクエストした際、スキルはユーザーにスキルのコア機能の操作方法を示すプロンプトを返す必要があります。
    スキルのコア機能を追加してください。
  6. スキルがタスクを完了した後、ユーザーへのプロンプトが提示されていないにもかかわらずセッションが開いたままになっています。
  7. 提示されるウエルカムプロンプトは、スキルの説明で定義したスキルの機能の文脈に合ったものにする必要があります。
  8. スキルのホームカードにコード参照が表示されます。
  9. 子ども向けスキルとして公開することは望ましくない可能性があると判断しました。

多いですが、この中で特に難儀したのは3,4,6です。

フィードバックへの対応

1.「現在のスキル説明およびスキルの応答内容は、
ユーザーにAlexa標準機能とスキルの機能の混同を生じさせる可能性があります。」

これは、スキル説明文に「あなたの問いかけに対し、Alexaが適当に反応してくれます」といった
Alexaを主語とする文脈を記載していたことが原因でした。
「Alexaが」の部分を、「当スキルが」、「配信サポートが」という形に置換して通過しました。

2.サンプルフレーズにサポートされていない起動フレーズが使われています。

ユーザーが作成したカスタムスキルの起動フレーズのガイドラインに沿っていない起動フレーズを
サンプルフレーズ内に入れてしまっていたことが原因です。
変に拘らず、無難に
「アレクサ、〇〇を開いて」「アレクサ、〇〇を起動して」「アレクサ、〇〇をスタートして」
の3つを入れておけば良いと思います。

3.スキルの詳細カードに表示される説明には、
ユーザーがスキルの使用方法について十分に理解できる正確な情報が含まれていません。

配信サポートでの一例を出します。
「実況配信者の呼びかけに答えてくれます」と説明文に記載していたのですが
「実況配信者って具体的にだれ?」という疑問をもたれました。
なので、スキルの利用者が、どういう発話をしたら、どういう反応をするスキルなのか、
名詞をきちんと統一して記載する必要があります。
また、これも最初から盛り沢山で記載してしまうと、突っ込みどころが増えて対応が難しくなっていくので
簡潔に、最低限必要な説明を記載し、指摘があったら肉付けしていく
というやり方が良いかもしれません。

4.特定のインテント名または発話例を使用してスキルを起動した際、スキルの応答が理解できません。

配信サポートは、会話型のスキルなので、ユーザーの発話に対し決まり切った内容を返すのではなく
ある程度のランダム性を持たせています。
その中で、例えば以下のようなパターン

ユーザー:「アレクサ、配信サポート を スタート して」
スキル:「配信の時間ですね。」

が突っ込まれました。スキルが「~の時間ですね」と返すのは
ユーザーが「~は何の時間?」という質問をした時に該当するのでは?という疑問をもたれるわけです。
開発者の脳内としては自然なやりとりに思えても、そうでもないパターンがある場合、突っ込まれます。

ユーザーの発話とスキルの応答がかみ合わないパターンがダメだとすると
「ピカチュウトーク」の
ユーザー「ピカチュウ、調子どう?」 スキル「ピッカァアア」
あれはよくてこちらはダメなのか?
という疑問もぶつけたのですが
「認識できる内容(言語)で返すことから、かみ合わない事例が表面化するので、ユーザーエクスペリエンスの向上に協力してください」
という要旨の回答をもらいました。
おそらく、ピカチュウトークの場合、ユーザーの発話に対し「メディアを再生している」なので引っかからないのだと思います。
スキル側の回答の多言語対応も必要がないので、良いアイデアだなと思いました。

5.ユーザーがスキル内の「ヘルプ」をリクエストした際、スキルはユーザーにスキルのコア機能の操作方法を示すプロンプトを返す必要があります。スキルのコア機能を追加してください。

ヘルプインテントへの回答(HelpIntentHandler)にコア機能
  • どういうスキルなのか
  • スキル開始の仕方
  • スキル起動中のユーザーの発話とそれに帯するスキル空の応答例
  • 終了するための発話

の説明を入れる事で通過しました。

6.スキルがタスクを完了した後、
ユーザーへのプロンプトが提示されていないにもかかわらずセッションが開いたままになっています。

これが始めから最後まで苦戦したフィードバックです。
スキルを起動した状態でユーザーとスキルが会話し付けるには、askプロパティ(v2ではrepromptプロパティ)を付与し
常にアレクサからの問いにユーザーが答える形式にするのですが

「Echo Spotなどの実機でスキルを実行すると、7秒ユーザーからの反応がないとスキルが強制停止する」

という仕様があります。

こうなると、実況配信中7秒黙ってしまうと、スキルが停止し、再度反応してもらうのに
「アレクサ、配信サポートを起動して」とその都度言う必要が出てきてしまい
大変面倒で不自然なものになってしまいます。
※7秒の部分を開発者側で指定できるようにできないかAlexa開発チームに要望提起はしました。

これを回避するためにスキルからの回答にSSMLで

を挿入するようにしました。
そうすると処理を知らない側には
「スキルの発話が終わって7秒経って停止しているはずのスキルのセッションが開いたままですよ?(何かバグなのでは?)
という疑問を持たれるわけです。
これに対しては、最初上に記述したように
「7秒以内に答えないといけないのは会話スキルとして不自然なので敢えてこうしている」
と返していたのですが、納得していただけなかったので、
画面表示にスキルはユーザーの応答を待っている旨の表示をし続けるようにし
スキルの発話に早く答えてもらえるような文脈を散りばめることでなんとか通過しました。

7.提示されるウエルカムプロンプトは、
スキルの説明で定義したスキルの機能の文脈に合ったものにする必要があります。

これも、配信サポート特有の問題で、スキルを開始した時に
スキル「またよろしくお願いします」とか色々と発話するようにしていたのですが
スキル起動時は「スキルが起動した旨と、次にユーザーがとれる発話を案内する必要がある」
とのことなので、「配信をサポートします。勝ったや負けそうなど話してみてください」
という文に変更することで通過しました。

8.スキルのホームカードにコード参照が表示されます。

これは、6で対応したSSMLタグが画面表示に出てしまうというバグを指摘されたものです。
Alexaは音声ユーザーインターフェース(VUI)ですが、
モニタ付のEchoの表示される文もチェックされています。

9.子ども向けスキルとして公開することは望ましくない可能性があると判断しました。

「対象年齢は広くしておいたほうがいいかな」
と思い「13歳未満のお子様を対象としていますか?」にチェックを入れました。
そのせいか、スキルの発話パターンの一部
「諦めるなよ!お前!「とまるんじゃねえぞ・・・!」といった
若干威圧的なフレーズが引っかかってしまったのかもしれません。
特に強く子供向け用途であるアプリでも無い限りは、チェック入れない方が良さそうです。

公開を終えて

フィードバックはかなり早い。

私がスキルを公開した2018/10時点では、メールは1営業日で返ってきました。土日は返信ありませんでした。

結構細かいところを指摘される。

Amazonによるテストは自動化されている部分が大部分だとは思いますが
人間もしっかりチェックしていると思えるメールやりとりが結構ありました。
これがまた細かいのなんの。
自作スキルなので、思いついた物をあれやこれやと盛り込んでいきたい衝動に駆られますし
実際そうしたのですが、Alexaのスキル開発公開を経て
「余計なことはしない」という意識が呼び起こされました。

スキルの更新は気軽にはできなくなる。

スキルのちょっとした修正でも再審査を行う必要が出てきます。
GoogleのAndroidアプリの方はほぼ詰まることなく公開でき
公開後の更新も開発者の裁量でドンドンできるので、この違いに驚いています。
「とりあえず公開して、何か問題があったら逐次更新すればいいや」
という考え方だと厳しいかもと思いました。

スキルのバージョン管理はAmazon側では行ってくれない

これもGoogle Playとは異なり、何か致命的な問題あるバージョンをリリースしてしまった際
「とりあえず一旦前バージョンに戻しておくか。」
ということがAlexa Developer Consoleではできません。
もっとも、公開審査が厳しいので致命的な問題を起こすスキルが公開され難いと思います。
開発者側でしっかりバージョン管理する必要があります。

私はwebIDEは使わず、VS Code + gitで開発しています。
ローカル開発環境構築はこの記事を参考にしました。

ともあれ、公開できて嬉しい

スキル公開まで想定外にてこずりましたが、
簡単なスキルでも自分が作った物が世に出て、使ってもらえる状態になるのは嬉しいですね。
このスキルを使った始めての配信では、コメントをいつも以上に多くいただけました。
もし良かったら、スキルをDLしていただいて、(良)評価もしていただけたら更に嬉しいです。

管理人へのおひねり

この記事を見て、管理人におひねりしてもいいかなと思ってくださる方は
下記Amazonリンク経由で買い物していただけると幸いです。
購入料金は変わりません。Amazonに渡る利益のうち数%が管理人の方に流れます。
書籍や3Dプリンタ関係の消耗品の購入に充てさせていただきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください