kun432's blog

Alexaなどスマートスピーカーの話題中心に、Voiceflowの日本語情報を発信してます。たまにAWSやkubernetesなど。

Alexa Live 2020メモ:Fresh Air for Alexa Skills: Take Your Voice Experience Out the Door

f:id:kun432:20200725183209p:plain

on-the-goのセッションも気になっていた。メモ。

Alexa Device Everywhere

Skill Backgrouding/Skill Foregrounding

  • ユースケース
    • Uberでタクシーを呼ぶ
      • Location Service APIで位置情報を利用
      • ドライバーのマッチングを行う間はバックグラウンドに移る
      • マッチングが終わるとフォアグラウンドに戻ってきて結果を伝えて再度バックグラウンドに戻る
      • バックグラウンドに行っている間は別のスキル(お天気聞くとか)をフォアグラウンドで呼び出せる
      • バックグラウンドに行っているスキルを呼び出すとフォアグラウンドに
      • この間、呼び出し名がない!
  • ユースケース
    • エクササイズスキル
      • 起動後に準備ができるまで待つ、バックグラウンドへ
      • 準備ができたらそれを伝える、フォアグラウンドへ。エクササイズ開始、バックグラウンドへ。
      • 音楽をかける
      • エクササイズ終了がフォアグラウンドへ。
      • 一時停止を伝えるとバックグラウンドへ。
  • コード
    • 4つのシナリオ
      • スキルからバックグランド、フォアグラウンドへの制御ができる
        • skill-initiated foregrounding/backgrounding
      • ユーザ発話によりバックグランド、フォアグラウンドへの移行もできる
        • customer-initiated foregrounding/backgrounding
    • Skill backgrouding
      • customer-initiated
        • "Alexa、一時停止して"
        • sessionBehaviourにSetSessionStateをBACKGROUDEDにして返す
        • ユーザが呼び出すことでforegroundに戻る
      • skill-initiated
        • スキル側でバックグランドにしたほうが良いタイミングで制御できる
        • sessionBehaviourは同じ
    • Skill foregrouding
      • APIリクエストが終わったときとかに良い
      • customer-initiated
        • "Alexa、準備OK"
        • カスタムインテントで受ける
        • トップレベルで受けれる
          • バックグラウンドにある場合は呼び出し名が不要
        • セッションデータはすべてセッションアトリビュートとしてスキルに返される
      • skill-initiated

まとめ

  • 端的にセッション時間を長くできる感じ。呼び出し名不要だったりセッションアトリビュートで前の状態をそのまま持ってこれるのもよい。
  • 処理待ちから準備ができたらSkill Session API叩く感じ?Lambdaのタイムアウトとか考慮しないといけない気がした。もしくはスキルとは別のところから叩く?
  • プライベートベータなので詳細不明、残念。