こちらは2019/4/6に開催されたAlexa Day 2019で発表されたジョルダン株式会社の山手 政実さんによるセッション「交通情報系スキルを事例に見る 日常生活に溶け込むスキル開発のテクニック」の参加レポートです。

概要

全国720社以上のバス時刻を案内するスキルとして公開されている、ジョルダン「バス案内」の開発時に苦労した点、工夫した点を紹介

セッション内容をピックアップ

  • Lambdaのコールドスタートの壁を超えるためにLambdaを捨てた
  • 呼びかけから返答までに1秒の短縮に成功
  • userId、deviceId、アカウントリンクを使いマルチデバイスに対応

Lambdaのコールドスタートの壁を超えるためにLambdaを捨てた

  • スキルの起動から、返答までのタイムラグが発生する壁にぶち当たる
  • Alexaサービスの後ろで動いているLambdaのコールドスタート時の起動時間が影響
  • いつ利用されるかわからないスキルに従来の手法で100%回避することは難しい
  • LambdaをやめHTTPSで通信するAPIサービスを選択

発表者スライドより引用

呼びかけから返答までに1秒の短縮に成功

  • Alexaデバイス上で発話からレスポンスの返答が行われるまでの時間差を計測
  • Lambda側がコールドスタート時は1秒の短縮に成功
  • ユーザーの間隔としてAlexaとは対話している、会話しているという間隔でありその期待値に応える意味で1秒の価値は大きい
  • Lambdaをやめる注意点
    • 公式ドキュメントで記載される詳細な要件をクリアする必要がある
    • 公開には要件を満たしているかの審査が入る
    • クリアできているか検証するためのモジュールが公開されている(alexa-verifier)

発表者スライドより引用

userId、deviceId、アカウントリンクを使いマルチデバイスに対応

  • 今後Alexaが外に出ていくことも想定し、マルチデバイス対応にはこだわった
  • ユーザー+どのデバイスを識別にはuserId、deviceIdを利用
    • スキル内で完結+発話でデバイスとデータを紐付ける場合はこれで対応が可能

カスタムスロットの上限数が課題になる

  • カスタムスロットの上限数5万件に対し、提供したいバス停の数は約23万件
  • アカウントリンクを活用し、事前にバス停を登録してもらうことでクリア
  • 以下、実現フロー
    • アカウントリンク時にバス停を仮登録(この時点ではデバイスは紐付いていない)
    • 初回スキルの呼び出し時にバス停のお気に入り情報とdeviceIdをペアに本登録

発表者スライドより引用

その他

  • Alexaが複数人で使う前提になっていないのがつらい

セッションを受けて

実際に公開されたスキルのお話だけにがっつりリアルな技術面での課題や苦労が見えて、今後スキル開発をする場合に参考になるセッションでした。
特にマルチデバイス対応に対してのアプローチはスタンダードが定まっていないなかで、実践的でとても興味深いお話でした。

公開されたスライド

交通情報系スキルを事例に見る 日常生活に溶け込むスキル開発のテクニック

元記事はこちら

Alexa Day2019参加レポート: 交通情報系スキルを事例に見る 日常生活に溶け込むスキル開発のテクニック