見出し画像

【書評】Voice User Interface設計 本格的なAlexaスキルの作り方

 本投稿時点では、スマートスピーカーの機能を拡張するスキルの設計は、Webやスマホアプリなどに比べると歴史や経験者が少なく、また、開発環境や対象となる製品自体も目まぐるしく変化している最中であり、各々の開発者がより良い設計方法を模索している段階ではないだろうか。
 なんとなくでも作れなくはないが、体系的で他者に説明可能な設計をできるようになりたいと思い、タイトルズバリな本書を読むことにした。

 最近、スマートスピーカーのスキルの開発方法について書かれた技術書が少しずつ出ているが、本書は、具体的な実装の仕方よりも、要件定義から会話の設計、AWSサービスの選び方まで、スキル開発の工程全般についてかなり幅広く書かれた本であり、タイトルどおり本格的なAlexaスキルの設計のついてしっかり学ぶことができた。

VUIとスマートスピーカーの現状

 スキルを開発するに当たり、まずは最近VUIが注目されている背景と、代表的なVUIデバイスであるスマートスピーカーの現状について抑えておいたほうが良いだろう。

 声による会話は人間にとって最も自然なコミュニケーション方法のひとつであることは言うまでもないが、最近音声のインタフェースが急激に注目されているのは、以下のような技術の進歩によって、デバイスとのスムーズなコミュニケーションが可能となったことが背景としてある。

離れた場所の声を認識する音声把握機能
音声からテキストデータに変換する自動音声認識(ASR)
テキストから意図を理解する自然言語理解(NLU)
ユーザーへの返答を自動生成する機能

 これに加え、さまざまなサービスがAPIを公開する企業が増えて、新しいアプリケーションを作りやすくなったこと、ミレニアル世代のユーザーを中心に、Frictionlessな体験が求められてきていることが、理由として挙げられている。

 本書ではスマートスピーカーがすでに広く普及している米国での利用実態についても書かれている。スマートスピーカーは主に家庭内でリビングやキッチンなどで複数台を共有して使われており、利用方法としてはやはり音楽やラジオの再生が多いという。他にもスマートホームの制御など「ながら作業」に使われているようだ。

 VUIデバイスは、その手軽さを活かして定期購入品の注文などの売上増大させたり、ユーザーとコミュニケーションをとることで商品購入時に納得感をもってもらったり、パーソナライズに役立つことが期待されている。

 最近は単なるスピーカーだけでなく、画面付きのものやスマホなど、さまざまな形態のものが登場しており、スキルを設計する際は、それぞれの特徴や使われ方をよく理解しておく必要がある。

VUIの設計

 本書では、スキルのVUI部分の設計手順を以下の流れで紹介している。

【要件定義】
・ユーザーストーリー
  - 機能の明確化、ペルソナの決定、ペルソナが得られる体験の明確化。
  - デザインシンキング、ユーザーストーリーマッピングを活用。
・台本
  - ユーザーとアシスタントの会話を並べた台本を作成する。
  - 表計算ソフトなどで、発話内容を交互に書いていく。
  - できたら実際に人どうしで会話してみて試してみると良い。
・対話フローの作成
  - 台本をフローチャートで表現したもの。
  - 必要な情報を満たすまで問い直すなど、VUI独特の動作にも配慮。

【アプリ開発】
・インテントの関連付け
  - 対話フローを機能単位のインテントに割り当てる。
・入力音声の検討
  - ユーザーがどのような発話をするか検討。
  - どのような可変要素(スロット)が含まれるか。
・出力音声の検討
  - システムから応答の発話内容を検討。
・対話モデルの作成
  - 上記のインテントや発話を、JSONのスキーマで記述する。

 要件定義段階では、人同士のような自然なコミュニケーションが求められるため、人間中心設計やデザイン思考の考え方を取り入れて、ペルソナやストーリーマッピングなどのツールを活用する。

 続いて、VUIならではの手順として、台本や対話フローの作成がある。
 台本はユーザーとAlexaの会話をテキストに起こしたもので、実際に人どうしで試すことで、会話の流れに違和感がないか確認することが出来る。
 対話フローはより実装に近い形のフローチャートに落とし込んだもので、インテントによる状態遷移や、どんなスロットが含まれるかなどを検討するのに役立つ。実行に必要な情報が揃うまでユーザーに問いかける挙動を"フレーム"という単位で管理するなど、VUI設計独特の表現が含まれている。

 ユーザーの発話内容を検討する際は、必ずしもユーザーは開発者の意図通りの発話をしないため、あらゆるパターンを想定する必要がある。1インテントあたりの発話サンプルは30個以上が目安だそうだ。
 出力音声についてもコツのようなものがあり、例えば、ある操作に対する返答を固定ではなくランダムにすることで特別感を演出したり、ユーザーに同意を求める明示的確認と、復唱に留まる暗黙的確認を使い分けるなど、自然なコミュニケーションを演出するための様々な工夫の仕方がある。

 スキル開発は実際に発話して試してみないとわからないことが多いため、ウォーターフォール型よりもアジャイル型の開発が向く。というより、そうせざるを得ないと思う。
 そのため、要件定義や設計内容を可視化・整理しておき、繰り返し設計しなおしたり、他者と共有・説明可能な状態を保つことも大切だと思う。

 個人的には、VUIは人同士のコミュニケーションに近い分、なんとなく感覚で設計しても作れてしまう印象をもっていたが、本書を読んで、きちんとユーザーストーリーに沿った会話の流れや言い回しを考えたり、無駄な確認を避けたりすることが重要であることを学んだ。
 GUIアプリで画面上のデザイン細部にこだわるように、VUIでは言葉ひとつひとつへの配慮が求められる。

システム設計

 AlexaスキルはユーザーがふれるVUI部分だけでなく、当然サービスの機能を実装したサーバーサイド部分の設計も必要である。

 本書では単純なLambda呼び出しで済むパターンや、OAuthによる認証を含むパターンなど、実際に有り得るであろうスキルを想定したアーキテクチャを紹介しており、とても参考になる。
 特に"店舗の商品・イベント情報を提供するスキル"を例として、シンプルなパターンからユーザー認証を経てデータの永続化をするまでをステップバイステップで拡張して設計していく手順が紹介されており、実際の開発をイメージできて非常にわかりやすかった。

 また、自分はAlexaスキル開発を通じてAWSを触り始めた初心者であるが、AWSで提供されるサービスはあまりにも多岐に渡るので、本書でAlexaスキル開発に必要な要所を把握することができてよかった。

おわりに

 本書によって要件定義からVUI、システム設計までの全体像を把握することができ、はじめてAlexaスキルを開発する人にとっては大変役に立つのではないかと思う。あまり実装に依存しないので、企画〜設計段階で長く活用できるのではないだろうか。

 Alexaスキル開発の魅力は、VUI関連の最新技術に触れられるだけでなく、企画〜設計、AWSを活用したサービスの開発までを、少人数ないし一人でも網羅できる点にあると思っている。
 そういう意味で、本書のような企画からシステム設計まで幅広く書かれた本は手元に一冊あると非常に有用であると思う。

この記事が気に入ったらサポートをしてみませんか?