AIアシスタントの今
近頃,システムインターフェースの世界はAIアシスタントの登場により劇的に変化しています。マウスによるクリック操作から,スマートフォンによるタッチ操作に移行してきたインターフェースは,音声と機械学習による「声で操作する」形へ進化してきています。
Amazon社の「Alexa」に始まり,Google社の「Google assistant」,LINE社の「Clova」と,各社それぞれ個性的なAIプラットフォームをリリースしており,欧米を中心に声によるシステムオペレーションが浸透してきています。中でもアメリカ国内では爆発的にシェアを伸ばし,2017年でスマートスピーカーは2,400万台を超える出荷を記録,2018年では全世界で5,630万台に及び,今後5年間で全てのスピーカーはスマートスピーカーになるだろう,と予測されています。
Alexa対応は必須!?
その中でも,Alexaはシェアの約70%を占める一大勢力となっており,今後サービスを展開する企業にとって「Alexa対応」は必須となっていくことでしょう。Alexaの最大の特徴は,エンジニアが簡単に独自の機能を追加,拡張できる「スキル」の豊富さにあります。既にアメリカでは3万を超えるスキルが公開されており,ピザやコーヒーの注文,タクシーを呼ぶ,テスト勉強,鍵の施錠,電気のスイッチ,クイズなど様々なことがAlexaを通じて声で操作することが可能になっています。
日本でも去年よりAlexaの日本語版が開始,今年の3月からはEchoの一般販売も開始され,その熱はどんどん高まっています。エンジニアの皆さんは急激に成長を続けるこのAlexaスキルの開発方法を身につけることで,今後のキャリアに必ず役に立つことでしょう。
本記事では,Alexaの基本的な開発プロセスと,特に最初のうちは引っかかってしまう「テスト」「公開申請」の勘所について解説いたします。
スキル開発のプロセス
スキル開発は一般的に図1のようなステップで行います。
図1 スキル開発の工程
この図を見ると,「VUI(Voice User Interface)設計の割合が意外と多い」と思いませんか。スキルの開発には,「音声インターフェースの設計はGUIなどの設計と違う」という意識が必要です。Webシステムの設計をそのまま転用しても,動くことは動くのですが,非常に使いにくいものになります。音声アシスタントにフィットしたVUI設計を行うことで,より自然かつナッジ(※注)された音声でのやり取りが可能となりますので,ここは力を入れたいところです。
まず,「どのようなスキルを作るのか」を企画したら「ハッピーパス」と呼ばれる,簡単な会話例を書き出します。複数人でスキルを開発する場合は,ハッピーパスのみでプロトタイプを作成するか,誰かに「Alexa役」をやってもらって,会話のやり取りを録音しハッピーパスを作成します。「このスキルは,こういうことができるんだ」という具体的なイメージを共有することで,「じゃあこういう風にユーザーが返した場合はどうする?」というケースに対して適切な対応が設計できます。
これは会議と雑談の違いのようなものです。ゴールが共有されていると,話が脱線しても自然と軌道修正していけますが,何もテーマが決まっていないと,話が色々な所に飛んでしまい,当初とは全く違う内容になることがあります。「ハッピーパス」は目的からそれていくユーザーの発話を自然に戻す軸の役割を果たします。
会話によるコミュニケーションというのは,言語そのものから得られる情報は10%未満,と言われています。残りは非言語情報(表情,仕草,声のトーン,大きさなど)から総合的に相手が意図するものを汲み取っているわけです。
Alexaには表情を読み取る機能はありませんので,普通の会話だけをイメージしてVUIを設計すると,ユーザーからは違和感を感じることが出てきます。そこでVUI設計のキモとしては「会話の距離感」や「会話パターンをいくつも用意すること」に加え,「目的となる処理に向けて誘導していく会話」が必要となります。ときには選択肢を提示したり,自由に返答できるような質問ではなく「はい」「いいえ」で答えるような質問形式に変える,など,いかにストレスなくユーザーの目的が達成できるように会話を構築するかを考えましょう。
テストの実施
構築が終わると「テスト」です。テストは大きく分けて「コード上のテスト」「シミュレーターによるテスト」「実機によるテスト」に分かれます。Alexaのテストは当然,声によって自然言語を話すことで正常に動くかどうかを確かめることになりますので,複雑になればなるほど実機でのテストに時間がかかります。そこで「コード上のテスト」「シミュレーターによるテスト」が重要となってきます。特に「コード上のテスト」はコードを細かく変更,修正したとしても,一発ですべてのパターンが正常に動くか確認しながら開発ができるので,大きなスキルになればなるほど安心してコード変更をかけることができます。
Alexaの場合には,バックエンドに当たるAWS Lambdaのコードをローカルでテストすることになります。いくつかのテストツールがあるのですが,alexa-conversationというツールが直感的で使いやすいのでおすすめいたします。
公開申請の注意点
テストが終わると,いよいよスキルの公開ですが,その前に公開申請が必要です。
ここでいくつかポイントがあります。まず,それぞれのリージョンの審査はそれぞれのホスト国のAmazon審査チームが担当しています。つまり英語(米語)と日本語の多言語スキルをリリースすると,それぞれアメリカと日本のチームで審査が行われます。経験的にはアメリカの審査はほぼ全部自動化によるスクリプトチェックですが,日本の審査は人間がひとつひとつ確認しています。それは日本でのAlexa展開が始まったばかりで,「スキルのクオリティを維持したい」という日本Amazonの思いに加え,日本語特有の言い回しの複雑さや語彙数の多さが理由にあると思われます。審査基準や項目は以下のWebに公開しているので,こちらを参考にまずはセルフチェックを徹底することをお勧めします。
- カスタムスキルの認証要件
- https://amzn.to/2ibZUFh
もう1つのポイントは「バックエンドロジックは審査対象外」というところです。ソースコードが置かれるサーバーは個人資産なので,例えそれがAWS Lambdaを使っていたとしても,審査チームが自由に覗けるものではありません。従って,審査はあくまで実機やシミュレータを通して行われます(開発者コンソールはチェックが入ります)。審査の期間は現時点でおよそ3〜5営業日かかります。頻繁にコンテンツをアップデートするようなスキルの場合はレスポンス部分をなるべくバックエンドに固めて,審査なしで更新できるような設計をしておくのも戦略のひとつとなるでしょう。
スキルストアへの公開
審査に通ると,スキルが一般のスキルストアに公開されます。現在Alexaでは,スキル内で別スキルを紹介するような挙動が禁止されています。ですのでプロモーションとしては,SNSやブログ等のWeb媒体がメインになります。Alexaアプリを起動しなくても声で「Alexa,○○を有効にして」でスキルは有効になりますので,ラジオやTVなどの媒体でこのフレーズを浸透させる(○○で検索,というフレーズが一般的な広告手段となっているように)方法も検討してみてください。
また,新たなバージョンにアップデートする際は「再審査」となります。その際,現在のバージョンは停止せず,新しいバージョンが再審査に通った瞬間に新しいバージョンと入れ替わります。一方,前述の通りバックエンドは審査対象外なので,バックエンドのコードを新しいバージョンに更新してしまうと,現在のバージョンが審査中動かなくなる可能性があります。
知っておきたい便利ツール
ここでスキルを作成する際に知っておくと便利なツールをひとつ紹介します。「skillnator」といいます(画面1)。
画面1 Skillinatorの画面程
このツールは,開発者コンソール側でサンプル発話などを設定するとでき上がる「Interaction Model」というJSONテキストを貼り付けるだけで,バックエンドの雛形を作ってくれるものです。開発者コンソールで設定したIntentやSlotに合わせてバックエンドのハンドラーをイチから書いていくのは結構大変なことなので,こういったツールを利用してベースを作り,みなさんはロジックに集中する,というのが効率的です。是非お試しください。
まとめ
駆け足でAlexa開発の勘所についてお話してきました。Web媒体は「ここがちょっとわからない」という局所的な課題を解決するのには大変役立つのですが,初めての言語やカテゴリの開発をイチから勉強するのはなかなか大変です。やはり何も知らない段階から一定程度の開発ができるようになるためには,段階を踏んで一貫した内容を見られるようなコンテンツが必要です。例えば新しいプログラミング言語を学ぼう,とした時,やはり初心者向けの習得本を元に勉強するのが一番の近道だったりするのと同じですね。
『はじめてのAlexaスキル開発』では,そんな「はじめてAlexaスキルを開発する」という方向けにじっくりと腰を据えてAlexaの仕組みからアカウントの作成,コーディング手法に至るまで細部に渡って理解できるように書きました。この本が皆さんのAlexaスキル開発の第一歩を手助けできるような存在になることを願っています。