Storylineでデザインする
心地よい会話体験
吉田真吾 @yoshidashingo
2018.3.28
MasterCloud
-Alexa makes the world a better place-
吉田真吾
n バックグラウンド
証券システム基盤開発
p 基盤システム開発、Oracleチューニングなど
エバンジェリスト
p 講演113回(2013年実績)
p AWS設計・構築・移行(2014-2015)
n 現在のしごと
(株) セクションナイン 代表取締役社長
p APN コンサルティングパートナー
p DevOps Dockerize Serverless 支援など
(株) 実績等
p AWSウルトラクイズ
初代チャンピオン (2012年)
p AWS Samurai 2014 / 2016
AWSによるサーバーレスアーキテクチャ
• サーバーレスアーキテクチャによ
る動画シェアサイト構築
• オンライン教育動画サイト「A
Cloud Guru」で実際に使われてい
る技術やコードをベースにDeep
Dive
• AWS Lambda / API Gateway / S3 /
CloudFront / Elastic Transcoder /
Auth0 / Firebase Realtime
Database
Alexa アプリ
• カスタム対話モデル
• スマートホームスキルAPI
• フラッシュブリーフィング
スキルAPI
• ビデオスキルAPI
・Amazon開発者ポータルアカウント
・AWS Lambda(AWSアカウント)
・alexaアプリ(+Amazon.co.jpアカウント)
How to DESIGN?
音声デザインガイド
1. 目的とユーザー
ストーリーの設定
2. 台本の作成
3. 対話フローの作成
4. スキル構築のための
準備
https://developer.amazon.com/ja/designing-for-voice/design-process/
ひとつのスキルで色々なこと
をやろうとするとインテント
の区別や発話→インテントの
マッピング精度がいまいちに
なりがち
音声デザインガイド
1. 目的とユーザー
ストーリーの設定
2. 台本の作成
3. 対話フローの作成
4. スキル構築のための
準備
https://developer.amazon.com/ja/designing-for-voice/design-process/
実際に声に出し話してみる
• 質問は適切か
• 答えは冗長ではないか
• 次の行動をどう促すか
• 機能性として十分か
音声デザインガイド
1. 目的とユーザー
ストーリーの設定
2. 台本の作成
3. 対話フローの作成
4. スキル構築のための
準備
音声デザインガイド:4. スキル構築のための準備
https://developer.amazon.com/ja/designing-for-voice/design-process/
スキルの「呼び出し名」
インテント
(=Lambdaハンドラー)
スロット
(=Lambda: switch case / value)
大事なこと
• バックエンドを実装する以前に、対話モデルや会話
体験を設計して作り込む必要がある
• 自然に話しかけてどの程度理解してもらえるか?
• 期待する動作をしてくれるか?
• 冗長なやりとりにならないか?
• 言葉のゆらぎを吸収してくれるか?
• ここで促すべき次の行動はなにか?
→ Voice User Interface eXperience Designer
(VUXデザイナー)
われわれがつくりたいのは
IVR(自動音声応答システム)
ではない
・声による入力
・ユーザーはコマンドラインのようには
話しかけてくれない
言葉ではなく
意味・文脈を理解する
アシスタント
・動詞が揺れる(聞かせて/教えて/調べて…)
・目的語が抜ける
・指示語(それ)のあつかい、などなど
Alexaスキル開発ツール
本家Alexaコンソール
https://developer.amazon.com/ja/alexa
Storyline
https://getstoryline.com
Actions on Google + Dialogflow
https://console.actions.google.com/
https://console.dialogflow.com
Storyline
the easiest way to create an Amazon Alexa skill without coding
https://getstoryline.com
Storyline
1. [+ New Skill] ->
[New custom skill]
を選ぶ
2. スキル情報を入力
する
Storyline
• Welcome Blockから
• [help][stop]インテント
は元からある
• 起動後の発話
> 今日の調子はどうですか
• インテント(リクエスト)
の追加
> 最高にいいよ(シノニム※サンプル
発話)
Storyline
• インテントごとの呼び出
し先の子ブロックを設定
> いいよ→greatブロック
• 子ブロックも同様にレス
ポンス(ランダムも可)を
定義
• 単にレスポンスするだけ
でなく別のステップにつ
なぐことも可能
Storyline
• [else]でインテントに
マッチしない発話に対す
るアクションも定義可能
• ex. 調子はどうか聞き直
す
Upload to Alexa - Storyline
対話のステート制御
特に困った部分
エコちっち
• Alexaの中で妖精を育てる育
成ゲーム
• インテント
• リセット(たまごに戻す)
• エコちっちの状態確認
• ごはん
• ダンス
• お勉強
• トイレ
• 寝かせる
• 起こす
エコちっち (デモ)
• 「Alexa、エコちっちでリセットして」
• 「Alexa、エコちっちで元気か教えて」
• 「Alexa、エコちっちでごはんを食べさせて」
こまった!対話のフロー制御
• [発話]状態確認
→おなかがすいてます。ごはんを食べさせてあげますか?
→はい
→(インテント:状態確認※「ごはん」を呼びたいのに)
• [発話]ダンスを踊らせて
→ダンスを踊らせてあげますか?
→はい
→(インテント:ダンス)
ステート
1. ステートの定義
2. ステートに応じたハンドラー
群の定義
3. ハンドラー登録
→ステートに応じて追加した
ハンドラーが呼ばれる
ステート制御について
Storylineでエコちっちは実装できるか?
エコちっちのステート制御
• 状態確認→ステート制御
はLambdaでやっている
• Storyline:APIで状態確
認(○)
→ステートに応じた次の
ステップ選択( )
Storyline
Pros
• 対話の流れの構築およ
びプロトタイピングが
まったくつまづかず構
築可能
• バックエンドでREST
APIまで呼び出し可能
Cons
• レスポンスの発話や、
対話の折り返しなどを
Storylineが制御するこ
とによる自由度のト
レードオフ
• ex. APIのパラメータ指
定/レスポンスによる
遷移先の制御、ボイス
ロイドなど
総評としては
かなり良い
ステートを制するものが
対話モデルを制す
そして結論
まとめ
• Storylineはデザイン・プロトタイピングの範囲で
はかなり有用
• 対話フローのデザインの重要性に計画初期段階でフォー
カスできる
• プロトフェーズでも体験を意識したフロー制御になると
困ってくる可能性もある >ステートでの制御を考慮する
段階になったら早めにLambdaないし別のバックエンド
に切り替える判断
• エンハンス開発の速度が速いのですぐに良くなっていく
• 何より対話のデザインの重要性に気づき、心地よ
い会話体験を作り上げることをつねに意識する必
要がある

Storylineでデザインする心地よい会話体験