[レポート] Alexa Skills Kitでプロダクトの可能性を広げる #alexaday2018 #jawsug

はじめに

本ブログは、2018年2月11日(日)に開催されたAlexa Day 2018のセッション、
「Alexa Skills Kitでプロダクトの可能性を広げる」
のレポートです。

スピーカーは、 株式会社リクルートマーケティングパートナーズの市川純さんです。

概要

Alexa Skills Kitの基本的な説明から、実際に公開したSkillについての解説を行ないます。

レポート

Amazon Alexaとは

  • Alexaのエコシステムについて
  • Alexa Voice Service(AVS)とは
  • Alexa Skills Kit(ASK)とは
    • USでは2016年10月以降、サードパーティのスキルが4500から32000に増加
  • Alexa Skillの種類
    • カスタム対話モデル
    • スマートホームスキル
    • フラッシュブリーフィング
    • ビデオスキル(日本未対応)
  • スマートホームスキル
    • 呼び出し名が不要

ASKの基本(カスタム対話モデル)

  • 開始フレーズ(〜をつかって、〜を開いてなど)
  • 発話の基本(どう解釈されるか)
  • 呼び出し名(アプリ名のようなもの)
    • ウェイクワードや起動フレーズ、繋ぎ語を含めてはいけない
  • スロット(変数のようなもの)
    • ビルトインタイプ(AMAZON.DATE, AMAZON.NUMBER...)
    • カスタムタイプ(自分で定義する)
  • 対話モデル
    • サンプル発話で発話のマッピングを定義
    • インテント(ユーザー発話の意図)とそれに対するサンプル発話を登録していく
  • インテントスキーマ
    • サンプル発話に定義したスロットを含める

レシピ動画サービス(ゼクシィキッチン)の開発

  • VUIの設計
    • Amazonに設計用のドキュメントがある
  • 開発の際に含めなかったこと
    • アプリのキャラ設計
    • SSMLを使った自然な発話(既存コンテンツを利用するため)
  • 本来は動画でユーザーの負を解決する
    • Echoで動画は見せることはできない
    • 具体的な表現が音声だけでは伝わらない
  • ユーザーストーリー
    • おすすめ、ジャンル、食材などでレシピを探す
  • ユーザーとAlexaとの会話の台本を作る
    • ユーザーがどのようにAlexaに発話するか様々なパターンを想定する
  • スキル起動のフロー
    • 前回のセッションがあればリジュームする
  • ユーザーのセッションの扱い
    • Alexaはスキル起動中しかセッションを維持しない
    • 永続的なデータベースにセッションの情報を残すことを考える
  • スキルに必要なインテントとは?
    • レシピの検索インテント
    • 「{スロット}のレシピを教えて」
    • 「{スロット}の作り方」
    • 思いつく限りの発話を登録して、ユーザーがどのように話しかけても反応しやすくする
  • Skillの開発
    • AWS Lambdaを使う
      • サーバーレス
      • SSL証明書を用意しなくてもいい
    • 自分でホストする場合
      • ASKのI/Fに準拠している必要がある
    • Node.jsでSDKが準備されている
      • ASK CLIがある
      • 日本語対応はまだ途中
  • 実際のスキル開発では複数の環境を用意する必要がある
    • 本番用と開発用のエンドポイントを準備する
  • テストは以下を使う
    • Developer Console
    • サービスシミュレーター
    • Echosim.io(AVSで作られている。ブラウザから利用可能)
      • 実機がなくてもテストができる。実機が無かった開発当初はうまく活用していた
  • 運用
    • ライブ(公開された)スキルはメトリクスが確認できる
    • インテントの利用状況を比率でチェック可能
    • スロットとして登録している情報はキーワードとして取得できるので、そこから利用状況を確認
    • ワードクラウドで確認したら、改善前は「人気」「終了」キーワードが最も多かった
      • 改善後は、いろいろなキーワードも入ってくるようになった
  • プロダクトのスキル開発
    • 台本を考えて、声を出して会話してみる
    • できるだけ短く発話するように改善してみる
    • ユーザーのいろいろな発話に対応できるようにする

おわりに

ASKを使ったカスタム対話モデルの作り方について、とてもわかりやすいセッションでした!
実際のプロダクト開発のご経験からの具体的な話もあり、参考になるところが多かったです!