【レポート】音声+スクリーン: Alexa Voice Service でマルチモーダルなデバイスをデザインする方法 #reinvent #ALX318

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Alexa事業部の宮島です。

本記事はAWS re:Invent 2017のセッション「ALX318:Voice Plus Screen: How to Design Multi-Modal Devices with the Alexa Voice Service」のレポートです。

概要

このセッションでは、対話的でマルチモーダルなAlexa対応デバイスを構築するための手法と、ハードウェアおよびソフトウェア開発リソースについての説明がありました。マルチモーダルとは、音声(聴覚)+画像・映像(視覚)など、複数の感覚をコミュニケーションに用いることです。
また、マルチモーダルなAlexa対応デバイスの先進的な例が紹介されました。

スピーカーは、Alexa Voice Servicesのソリューション・アーキテクチャー・チームのリーダーをされているOri Neidichさんでした。

レポート

導入

セッションはAVS (Alexa Voice Service) のざっくりとした説明から始まりました。AVSとは、Alexa対応デバイスを開発するためのハードウェアのリファレンス・デザインとソフトウェア開発キットなど一式を指します。

  • Alexa Voice Service のゴールは、Alexa をあらゆる場所で使えるようにすること
  • 人間は耳で聞くよりも目で読む・見る方が速いので、長いTo-Doリストのような特定の情報には視覚的な応答を返す手段が必要

  • AVSデバイス(Alexa対応デバイス)がマイクで取り込んだ音声データをAVSクラウド(Alexa)にイベントとして送る
  • AVSクラウドが音声認識と自然言語処理を行い、発話したユーザーの意図(インテント)を特定し、インテントに基づいた指示(ディレクティブ)をAVSデバイスに送る
  • ディレクティブはJSONで返され、AVSデバイスにどういう発話をさせるか、という情報が含まれる
  • ディレクティブには視覚情報(カード)を表示させるためのメタデータを含めることもできる
  • AVSデバイスをプログラミングするためのSDK(AVSデバイスSDK)はC++で書かれている

代表的なカードの紹介

セッション動画の3分40秒辺りから

  • タブレットモーダリティ
    • 画面とユーザーの距離が近い小さいスクリーン向け
    • 全画面表示
  • サイドカード
    • 画面とユーザーの間にある程度距離があるテレビやプロジェクターなどの大きいスクリーン向け
    • 画面の右側3分の1に表示(大きい画面の全体に表示されるとわずらわしいので)

  • ナウプレイングカード
    • 音楽などのメディア再生が始まった時に表示
    • 画面のサイズを問わず、全画面表示

カード表示を伴う場合のAVSデバイスとAVSクラウドのやりとり

セッション動画の5分8秒辺りから

  • AVSデバイスからユーザーの発話の音声データが、AVSクラウドに送信される(SpeechRecognizer.Recognizeイベント)
    • ここは、カード表示が無い場合と同様

  • AVSクラウドから音声応答(SpeechSynthesyzer.Speakディレクティブ)がAVSデバイスに送信される
    • ここも、カード表示が無い場合と同様
  • これに加えて、カード表示を行うための情報を含む応答(TemplateRuntime.RenderTemplateディレクティブ)も送信される

Code-based Linking

セッション動画の14分6秒辺りから

  • Alexa対応デバイスからAlexaを利用するためには、そのデバイスとユーザーのアカウントを紐付ける必要がある
  • TV・スマートウォッチのような物理的な文字入力を持たないAlexa対応デバイスではオンスクリーンキーボードでパスワードを入力させる場合があるが、これはとても煩わしい

  • 表示の手段は持つが、文字入力手段を持たない・もしくは限定された文字入力手段しか持たないようなデバイスのための認証手段としてCBL(Code Based Linking)という仕組みを用意した
  • 紐付けたいAlexa対応デバイス上で短いコードを表示して、ユーザーは手持ちのスマートフォンやタブレットからAlexaアカウントにサインインして、コードを入力することでデバイスの紐付けを行う

CBLはOAuthスタイルの認証を行う

  1. ユーザーがAVSデバイスに認証の開始を要求する
  2. AVSデバイスがLWA(Login with Amazon)認証サービスにデバイスの認証を要求する
  3. LWA認証サービスはAVSデバイスにメタデータを返す
  4. AVSデバイスはユーザーにコードとURLを表示する
  5. AVSデバイスはLWA認証サービスにデバイストークンを要求する
  6. LWA認証サービスは応答を返す(5と6をデバイストークンが返ってくるまで繰り返す)
  7. ユーザーはスマートフォン・タブレットなどのブラウザで4で表示されたURLを開く
  8. ユーザーはスマートフォン・タブレットでAmazonにログインしてコードを入力する
  9. ログイン成功のメッセージがユーザーに表示される
  10. AVSデバイスはLWA認証サービスにデバイストークンを要求する(5と同様)
  11. LWA認証サービスからAVSデバイスにデバイストークンが返される
  12. AVSデバイスがデバイスの紐付け成功のメッセージをユーザーに表示する

Alexa smart home & video skills

セッション動画の15分56秒辺りから

  • マルチモーダルなAlexaデバイスの一例として、スマートホームスキルに対応したテレビがある
    • スマートホームAV APIでテレビのリモコンでできることをAlexaを介して音声でできるようになる
  • ビデオAPIもでコンテンツの検索・再生を簡単に行うことができる
    • ビデオAPIを実装したスキルから提供されるコンテンツは、スキルの呼び出し名を明示する必要なく、「アレクサ、〇〇を再生して」や「アレクサ、俳優Xが出演している映画を再生して」などと言うだけで再生される

Hisense TV demonstration

セッションの最後では、カード表示やCBLを実装したAlexa搭載テレビのデモが披露されました

まだプロトタイプのようで、メーカーのハイセンス社のサイト等でも情報は公開されていないようです。
そのうち発表されるのでしょうか。楽しみです!

まとめ

これから当たり前になっていくであろう、マルチモーダルなAlexa搭載デバイスを開発するうえで
押さえておくべきポイントが短い時間に凝縮された、良いセッションでした!

関連リンク

余談

スピーカーの方が、"AVSの101(ワンオーワン)の話しをする"と言っていて、何のことかよくわからなかったのですが、大学の入門的な内容の講義に「101」という番号がつけられることが多いことから、AVSの入門的な話をするよ、という合図だったようです(参考)。