Alexa LIVE 2020 私的まとめ Part 3 (ASK の基礎的な仕組み関連)
Part 1 では APL 関連、 Part 2 では Web/Mobile との連携関連についてまとめましたが、 Part 3 の今回はちょっと曖昧なくくりになっちゃうんですが、 Alexa Skill Kit (ASK) の基礎的な部分のアップデートについてまとめていきたいと思います。
Part 2 は以下からご覧いただけるのでまだご覧になっていない場合はぜひご覧ください。
それではまとめていきたいと思います。
最初に書いておきますが今回紹介するアップデートは Preview 版かつ 使えるリージョンも限定的です。日本で使えるのは下手したら年単位で当分先になるのであくまで「こういう方向性で進化してるんだ〜」くらいの参考にするのがいいのかなと思います。
CanFulfillIntentRequest とか確か 2, 3 年くらい前 (もしかしたらもっと前?) に en_US 限定の preview で出てまだそのままですしね。
Name Free Interaction (Preview)
このブログでだいぶ詳しく解説されていますが、ユーザーがスキル名をわざわざ明言しなくてもスキルの起動ができるようになる。というものみたいです。
具体的には、NFI toolkit というものを使って最大 5 つまでスキル名抜きでも起動したいフレーズと、その時にリクエストとして送信して欲しい Intent を定義することができるようになるみたいです。
この定義をもとにユーザーがスキル名抜きで発話した際にどのスキルをどの Intnet で起動するのか Alexa がその都度決定してくれるようです。 CanFullfillIntentRequest と似たような機能ですね。
誰でも登録できるわけでは無く、 developer preview で審査が必要みたいです。また、審査に通ってもユーザーからの反応によってはその資格も失う可能性があるそうです。
developer preview かつ en_UK en_US en_IN のみで日本ではまだ使えないみたいですね。後述する Skill Resumption と組み合わせて使えるようになるとかなり面白そうだなーと思うのですが。
Skill Resumption (Preview)
一言で言うとスキルの終了 (= kill) だけでは無く、スキルの一時中断 (= Background への移行)も出来るようになった。という機能みたいです。
今まではあるスキルを使っている最中に別のスキルを使いたい場合はスキルをいったん終了して別のスキルを立ち上げる。という形でしか実現できなかったため、いくつかのことを連続的にやりたい場合などに不便でした。これが Skill Resumption を使うことで解決できるようになります。
そんなに色々なこといっぺんにやらないでしょ。と思う人もいるかもしれませんが、例えばセッションでは
- スキルを使ってジョギングの記録をしている最中に、記録を一時中断して別のことをした後にまた再開する
- Uber のスキルでタクシーの配車を依頼した後、 10 分後に車が向かっている旨を伝えるためにスキルが自動で立ち上がる。
などがユースケースとして紹介されていました。
具体的な仕組みとしては、スキル側で以下のようなレスポンスを送ることでスキルを一時中断させることができるようになります。
{
"version": "1.0",
"sessionAttributes": {
},
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Ok, pausing your workout. Let me know when you’re ready."
},
"sessionBehavior": {
"type": "SetSessionState",
"state": "BACKGROUNDED"
}
}
}
一時中断から戻るのは、ユーザーからの発話があるか、スキル側で任意のタイミングで復帰用の API エンドポイントにリクエストを投げるかの方法があります。特に前者のパターンだと Name Free Interaction が活きそうだなと思います。
こちらの機能はまだ en_US 限定かつ preview なので具体的な仕様はまだ不明かついつ日本で使えるのかわからない状況ですが、連続的な会話はしないがセッションは保持し続けたい。というスキルを作る際にはかなり嬉しい機能だなと思いました。
今回は以上、もう一本もしかしたら 認識モデル関連のアップデートで記事書くかもしれません。ご期待ください。
この記事が気に入ったらサポートをしてみませんか?