[Alexa] VUI Testing Toolを試してみました

alexa-eyecatch

1 はじめに

Amazonの開発者ページにAmazon Alexa(以下、Alexa)用のVUI Testing Toolというものが紹介されています。

002
https://developer.amazon.com/alexa-skills-kit/tools/vui-testing-tool

こちらは、作成したスキルの実装をテストすると言うものではなく、スキル開発に先立って、音声のデザインをするためのものです。

魅力的な音声体験のためには、まずは、音声デザインが大事!という事です。

2 概要

VUI Testing Toolを使用したテストの作業は、概ね以下のとおりです。

  • Amazon開発者ページでスキルを作成
  • 同ページでInteraction Modelを作成
  • Githubで公開されているVUI Testing Toolのコードをそのままデプロイ
  • スキルのEndpointに上記LambdaのARNを設定する
  • シミュレーター等の端末から色々話しかけてみて、Interaction Modelの設定が心地よいものかどうかをテストする

VUI Testing Toolは、Lambdaの簡単なスキルで、どんな入力に対しても、解釈したインテントやスロットの結果を、カードと音声で返すだけのものです。

このスキルを使用することで、Interaction Modelで定義した、sample utteranceが、必要なSlotを適切に誘導できているかどうかを、実際に会話することで試すことができます。

なお、VUI Testing Toolは、Skill Builder(BETA) による Dialogモデルにも対応しています。


001
https://github.com/alexa/alexa-cookbook/tree/master/tools/VUI Testing Tool

3 やってみた

テスには、下記のplan-my-trip というサンプルを使用させて頂きました。


https://github.com/alexa/alexa-cookbook/tree/master/handling-responses/dialog-directive-delegate/sample-nodejs-plan-my-trip

このサンプルは、Skill Builder (Beta) 用に作成されており /speech-assets/InteractionModel.json をそのまま、Code の所に貼り付けるだけで利用可能です。

ただし、現在(2017/08/03現在)Github上のものは、そのままBuild Modelをすると次の2つのエラーが出ます。

003 005

一つ目は、未定義のSlotを使ってしまっているためで、2つ目は、Dialog Modelで、Slotsだけのsample utteranceは定義できないためのエラーです。

とりあえず、エラーの原因となっている2つのsample utteranceは削除して、Buildしました。

004

006

plan-my-tripは、旅行に関する情報提供のために、出発地、目的地、出発日などをSlotとして取得します。

Intentのsamplesには、次のようなものが定義されていました。

  • "I'm going on a trip {travelData}"
  • "i want to visit {toCity}"
  • "i want to travel from {fromCity} to {toCity} {travelDate}"
  • "go to {toCity}"
  • "Plan a trip"
  • "I'll go to {toCity} in the {travelDate}"

また、Dialogモデルで、{fromCity}, {toCity}, {travelDate}が必須Slotとなっており、たとえば、{toCity}を要求するsamplesは、こんな感じになっています。

  • "Where are you going?"

そして、{toCity}を要求すると同時に、他のSlotも余分にユーザーが話した場合、それも受け取れるように設定されています。

  • "i will leave on {travelDate}"
  • "i will goto {toCity} on {travelDate}"

これらの設定が、快適なVUIになっているかどうかを確かめていくわけです。

簡単なパターンですが、下記は、シミュレータで動作させてみたようすです。Dialogモデルとなっているため、必須Slotsが全部入った時点で、それを読み上げています。

4 最後に

Skill Builder(beta) + Dialogモデル は、Intentに必要なSlotsを収集するには、非常に強力です。そして、VUI Testing Toolのようなツールは、その作業を効率化するでしょう。

主題とはそれますが・・・VUI Testing ToolのLambdaのコード(alexa-cookbook/tools/VUI Testing Tool/src/index.js)は、非常に単純ですが、Alexa SDKでIntentやSlotsを扱うために必要な処理が全部含まれています。 まだ、Alexa SDKに不慣れだという方は、参考になると思います。

5 参考リンク

https://developer.amazon.com/alexa-skills-kit/tools/vui-testing-tool
https://github.com/alexa/alexa-cookbook/tree/master/tools/VUI Testing Tool
What Is a Voice User Interface (VUI)?