radioc@?

レディオキャットハテナ

【勉強会メモ】Alexa Day 2018

jaws-ug.doorkeeper.jp

  • 日時:2018-02-11(日)09:30 - 18:00
  • 場所:スペースアルファ三宮

f:id:radiocat:20180212000438p:plain

神戸で1日まるごとのAlexa Dayが開催されました。Alexaを冠する日本最大のイベントが開催されるとのことで張り切って行ってきました(少し遅刻して開始には間に合いませんでしたが)。

会場は大きな会議室を2つ使って同時並行でセッションが進みました。立ち見が出るセッションもあるほどで、この分野の盛り上がりを感じることができました。

セッションの中でも話題にあがっていたように音声認識や応答の技術が浸透すれば、既存のIT技術の活用には格差のある子供やお年寄りでも手軽にIT技術を活用する機会が増える可能性があります。一方でVUIという新しいユーザーインターフェースの設計や実装はまだまだ発展途上なので、今回のイベントのように実際に開発に携わった人たちが中心となってユーザーグループ主導でノウハウを共有して盛り上げていくことは今後のためにとても重要な機会だと改めて感じました。

日本ではまだ少し先になりそうですが既にアメリカではtoB向けのAlexa for Businessも始まっており、今後は家庭からオフィスまであらゆる場面にVUIが浸透し対話によるIT技術の利用がますます加速すると思われます。サーバサイド視点で考えると、モバイルの浸透の時と同様でまた1つ新たなインターフェースに対応していかなければならないとも言えるので、レガシーでモノリスなシステムはますますツラみが増すだろうなと感じずにはいられない動向でもあります。

金融機関向けAmazon Echo/Alexaへの取り組み事例紹介

※途中から参加したため後半だけのメモです。

開発について

  • 通常アプリとの開発の違いはあまりない

単体テスト

結合テスト

  • 基本的に手動テスト
    • 自動化はほとんどできず今後の課題
  • イントネーションや発話の長さをテスト

金融機関向けと一般向けスキルの違い

セキュリティ面が中心

専用PINの発行

  • 残高を聞かれる⇒PINコードを要求
    • 一度PINコード認証されると数分間はOKのような仕組みも必要

OAuth2.0

  • Authentication を使用
  • 既存のOAuth基盤を変えずに実現

その他Tips

  • アルファベットは極力カタカナで表記すると想定外の発話が返されることはない
  • Intentが正しくてもSlotが正しいとは限らない
    • キャンドル(カナダドル)をキャンセルと学習してしまう
    • Slotのバリデーション
  • エラーハンドリングの迷子
    • 例)さんの…みや支店⇒Alexa:みや支店?
    • ユーザーが次に何をすべきかを明確に応答する
  • 8秒でタイムアウト
    • ロングランの処理はさせない

今後の取組み

  • Push通知(現在日本は未対応)
  • どこでユーザーが離脱するかわからない⇒分析

Alexa Skills Kitでプロダクトの可能性を広げる

USでのスキル公開数

  • 2016/10⇒4,500
  • 2018/02⇒32,000

フラッシュブリーフィング

  • HTTPSで利用できるRSSフィードがあれば5分ぐらいで作れる
  • オーディオデータを含められる
  • Echo Showのようにディスプレイがあれば動画も再生可能

スマートホームスキル

カスタム対話モデル

開始フレーズ:「○○を開いて」で対話を開始する

  • 呼び出し名
  • スロット
  • サンプル発話

3つの組み合わせ

呼び出し名

  • どのSkillを使うかが決まる
  • ウエイクワードやつなぎ語を含んではならない

developer.amazon.com

スロット

  • ビルトインタイプ
    • 主要都市
    • 名前
  • カスタムタイプ
    • 自分で作る

対話モデル

  • サンプル発話
  • 想像できる発話を登録しておいてインテントに紐付ける

インテントスキーマ

  • サンプル発話に定義した発話の構造を定義

プロダクトのSkill 開発

ゼクシィキッチンの事例を中心に

VUIの設計

  • アプリのキャラ設定…サービスによっては考える
  • SSMLを使ってより自然な発話を目指す
    • 既存コンテンツを利用する場合は変換するのは難しい

ユーザーストーリー

  • オススメの料理を見つけられる

台本の作成

  • どういった使い方をするかを考えてみる
    • はじめは使い方を教える
    • いろんなパターンで聞いてくるのを想定する
  • 前回のセッションをチェックする
    • Alexaは一定時間応答がないと切れる
    • 次来た時に再開を考える
  • 慣れてくるとピンポイントで指定される

スキル構築の準備

  • スキルに必要な機能(インテント)は?
  • 検索のインテント
    • キーワードをスロットとして扱う
    • キーワードを使った考えられる発話内容を洗い出す

開発

  • AWS Lambda Functionを使う
  • 自分でホストする
    • SSL/TSL対応必須
    • 既存サービスがある場合
  • Node.jsやPythonSDKあり
  • Alexa Skills Kit CLIを使う
    • Jenkinsなどで自動化に利用できる
    • 日本語化がまだイマイチ

CLIのインストールと使用方法 | ASK

開発環境

運用

利用状況をチェック

  • メトリクスを見れる
  • どんなインテントがどれくらい呼ばれているか
  • スロットに登録していないキーワードが来る事も多い ^ 使われる言葉をワードクラウドで確認
  • 終了できちんと終わらないこともある

“アレクサ、パルコ をひらいて” 〜ショッピングセンターのAlexa活用のねらい〜

ショッピングセンターでAlexaを活用する。

PARCOスキル

  • 池袋PARCOのショップ、レストランの情報、周辺施設の情報を音声で検索可能
  • インフォメーションセンターで日々集計している問い合わせ記録の中でよくある質問600種類の質問に応答可能
  • PARCOの店頭にEchoを設置する前提で開発
  • 最新テクノロジーで接客を拡張する

BtoC(対顧客)

  • コミュニケーション手段が変化している

BtoB(テナント)

  • 人手不足、業務効率化の必要性

スマートフォンの普及でいつでもどこでも気軽に使える要求の高まり

24時間PARCO

  • いつでもどこでもショップスタッフとお客様がコミュニケーション可能
  • オムニチャンネルプラットフォーム

PARCOの接客拡張の取り組み

  • 2015年〜Pepper導入、多言語化など
  • 自走式ナビ…NAViiくん

ロボットは人よりも接客が得意?

1日あたり

  • インフォメーションセンター接客⇒134件
  • ロボット接客⇒403件

入り口前のインフォメーションセンターで顧客が質問するのはハードルが高かったという気づき⇒接客ロス

ロボット、機械のちからが必要

  • お客様から何を聞かれたのかの全データを記録できる
    • 今まではスタッフが手作業で集計・管理

ロボットで接客ロスを解消したいがコストの壁

  • 2017年AWS Summit Tokyoで相談
  • 不特定多数の場所でAlexaを使って何かするのは事例が少ない

↓検討中

  • Echoとタブレットを連携させたい
  • 店舗の複数箇所に設置する想定

今後やりたいこと

  • ロボットとの連携
  • 入店時の研修のオンライン化を進めているが、Alexaがマニュアルの指示を出したり質問に答えるようにできないか

課題

  • 店舗名をうまく発話してくれない
    • Voiceシュミレーターでテスト⇒テキストで修正
    • 音声ファイルに録音して修正指示
  • 別の言い回し(ゆらぎ)
  • 家庭ではなく公共空間への設置を前提とした設計が必要
    • 盗難防止策
    • 立っている高さに合う台
  • 雑音の中で正常に動作するか
    • 展示会会場では正常に動作した
    • 実際に設置する予定の場所でテスト予定
  • 他のスキルを起動されてしまう恐れ
    • Amazon Echoでは制御できない
    • 別のハード開発が必要⇒いったん対応保留
  • 設置場所によって案内の内容が異なる
    • 例)トイレの場所⇒一番近い場所を応答したい
    • Echoの端末設定で住所を分けて設置場所に応じた案内をする
  • ショップが入れ替わった際のメンテナンス
    • Webサイトで持っているショップデータを流用して自動更新を目指す
    • インテントの追加ではなくカスタムスロットのデータを更新できるように
      • 審査なくメンテナンスしたい
  • Amazonから店頭設置のGOはまだ出ていない

メモ

  • スロットの定義の数は1,200〜1,300ぐらい

Alexa and Machine Learning on AWS

www.slideshare.net

2つの重要なフレームワーク

  • ASK
  • AVS

日本で公開されたもの450以上のSkill

  • Voice Interfaceは新しい標準
  • 全ての検索トラフィックの10%
  • 2020年までには毎月2000億回の音声検索が行われる見込み

Alexa for business

  • ビジネス環境でも家庭と同じことを
  • Voiceで職場を変革
  • 受付、会議室など

管理者のコントロール

  • 共有デバイスのプロビジョニングと管理
    • ビデオ会議室システムの制御
  • ユーザー管理
    • 個人アカウントを会社管理に紐付け
  • スキル管理
    • プライベートスキル
      • パブリックに公開されない企業内の業務用スキル

Resolve Room

  • どのデバイスがどの会議室に置かれているか
  • ラスベガスのホテル⇒全ての部屋にEcho Dotが設置されている

Skill Parameters

  • スキルに他システムへのインデックスを提供

制限

  • 英語のみ
  • Roomの住所はアメリカのみ対応
  • バイスの登録がexe⇒Win必須

AI系のAWSサービスについて

Service

Amazon Rekognition

  • 画像認識
  • ビデオも追加された

ユースケース

  • 監視カメラの問題行動検知
  • 動画データの検索

Polly

  • テキストを音声に変換
  • いろいろな声、話し方、スピードなどを調整

Lex

  • 8kHzの電話音声に対応
  • Webアプリケーションやモバイル・アプリケーションに埋め込み
  • コールセンターアプリケーションへの対応

Comprehend

Translate

  • 多言語間翻訳

Transcribe

  • Speech-to-Text
  • 通常音声と電話音声の両方をサポート
  • 句読点の補完

ML Platform

Kinesis Video Streams

  • 動画に対してリアルタイムでアップロード
  • リアルタイムで処理しながらS3に保存
  • 街の監視カメラの動画をRekognitionと連携
  • 工場の自動化

SageMaker

  • 機械学習モデルを生み出すのにコストがかかる
  • ノートブック(Jupyter Notebook)、学習、推論
  • 3つを個別に利用することも可能
  • 様々なMLライブラリが入ったDockerイメージを提供

EL Engine

ML Infra

Amazon ML Solutions Lab

  • 機械学習エキスパートのサポート
  • シアトルで合宿形式

パルコ様事例にみるAlexaとデジタルサイネージを連携する方法

クラスメソッドとAlexa

  • Developers.IO
    • 140万PV
    • Alexa記事100本以上
  • Alexa事業部化
    • 北米スキル17本
    • 日本向けスキル10本

PARCO様向けSkill

開発中の課題と解決法

  • 店舗名の複雑さ…300店舗ある
  • アルファベット・記号が多い
  • 略語・通称での発話

⇒Tokenizarに優しいスロットを作る

発話⇒ASR⇒テキスト の部分に注目

  • ノイズの除去
  • エコーキャンセル
  • 特徴点の抽出
  • 音響モデルの作成
  • 発音認識
  • 言語モデルとのマッチング*
  • 単語認識*
  • 後処理

*の部分に注目しTokenizarに優しいスロットを作るためには単語モデルに合ったスロットを作る

  • 英単語は全てカタカナにする
    • ⇒日本語の単語モデルだから
  • 単語の区切りにスペースを入れる
  • 略語も登録
    • Lambdaでマッチングロジックを作る
  • トリム処理も必要(ATM⇒A T Mでスロットに入ってくることもある)

インタラクションモデルを使うかダイアログモデルを使うか

  • VUI設計時点から意識する

イントネーションが悪い

  • SSML職人化
  • <prosody pitch="xx%"> を駆使

レスポンステキストをより人間っぽく

  • 実際の受付係の方に覆面調査を実施

どうしようもできない事

  • 音声だけではたどり着けない(フロアが広い)
    • 案内図が必要
  • 複数ある施設が使いにくい(トイレなど)
    • 一番近い場所

タブレット連携要件

  • Alexaのレスポンスと同時に画面が切り替わる
  • Echoとタブレットは直接接続できない
  • 複数セットで配置するがペアで管理はしない

AWS IoT

  • MQTT over webSocketを使ってリアルタイム通信
  • Cognitoで認証
  • Things/Shadowsを使ってデバイスを個別認識

所在地分岐の方法

  • Echoデバイスの配置場所によってトイレの場所のメッセージが違う
  • Echoは別店舗に移動する可能性、廃棄する可能性(deviceIDはNG)

⇒デバイスの所在地を使う

  • 住所3は自由記入
  • device address APIで住所を抜き出して住所3で分岐させる
  • consent token
    • ユーザーの住所情報に対する許可をtokenの形で受け渡し

よくある要望と現在のチャレンジ

  • 会議室予約
  • 発注を音声で
  • 社内システムの検索や参照

⇒alexa for business

  • 電話を使いたい
  • 音声を聞き取って案内したい

⇒LexとAmazon Connect

  • Wake Word以外の呼び出し方
  • ノイズが大きい場所
  • 住所や社員コードを音声で言うのは面倒
  • スマホの機能(Touch IDなど)と連携したい

⇒Alexa Voice Service

Alexaの未来

  • ヒューマンインタフェース
    • 5年後10年後には音声対話が当たり前になる
    • IT技術は世代間の違いが大きい
      • 音声のほうが原始的な操作なのでITサービスを受けられやすい

How do we connect VUI to the real services using serverless

VUIデザインの話

音声デザインガイド

Amazon Alexa Voice Design Guide

  • 目的とユーザーストーリーの設定
  • 台本の作成
  • 対話フローの作成
  • スキル構築のための準備(スキル、インテント、スロットへマッピング

われわれが作りたいのはIVRではない

  • 言葉ではなく意味・文脈を理解するアシスタント

Skill Builderの活用

  • インテントの作成
    • 対話のパターンを登録
  • カスタムスロットの作成
    • 別名をたくさんつけてゆれを吸収

⇒VUXデザイナーが必要になる

AWS Lambda

  • パラダイムシフト
    • コンピューティングリソース調達のリードタイムなど
  • FaaSの台頭
  • サーバレスエコシステム
    • ペインポイントも多い
  • サーバレス
    • 開発の高速化
    • 運用の省力化

サーバレスの分類パターン

  • Webアプリケーション
    • SPA
    • CSVアップロード・ダウンロードのような仕組み
      • S3に置いてLambdaで取り込む
    • REST API
    • shifter…WordPressを静的ページにしてくれる
  • 運用
  • アプリケーション連携
    • Alexa Skill Set

事例

エコちっち

  • 音声コマンドで妖精を育てる
  • Node.jsでalexa-sdkを使う

状態確認してから実行する方式と直接実行する方式

  • 対話の流れの制御にはステート管理が重要
  • Lambdaのステート⇒Dynamoで永続化

HRアプリ

  • 例)
    • 鈴木さん給与 を教えて
    • 佐藤さん人事評価 を教えて
    • ↑同じ形式
    • スロットの内容によってコマンドの分岐が発生する
    • 設定したシノニムが全て呼ばれるので全て実装する必要がある

ソースの規模

  • 感覚的には150行ぐらい⇒816行

ステートを制するものが対話モデルを制す


Alexa Skill Contest

Nanchen Jiang : 家族全員で楽しめる新感覚クイズタイム

クイズゲーム

  • 1人から5人まで参加
  • 1人あたり6問
  • だんだん難しくなる
  • 採点は奥さんの評価
  • 点数を累積
    • レベルアップという機能を追加

Ippei Sumida : CoderDojo Hirakata

イベントお知らせスキル

  • TwitterFacebookは受動的
  • Webでイベントを確認するまでは手順が多い
  • 能動的な仕組み

Alexa Skillを作りたかった

  • APIの仕様がわからない
    • Try&Errorで作成

審査

  • リジェクト4回
  • 子供向けスキルと誤解
    • 子供向けのイベントであるがSkillは子供向けではない
    • 保護者向けアピール

Tomoharu Ito : Push and go!

  • ビーチフラッグスのようにエコーボタンを使う

Sayaka Ito : リマインダーAPIをハックして、Alexaを積極的なキャラにする

Notificationのデベロッパープレビューに申し込み

⇒まだ来ていない

Alexaに自発的に喋らせる

⇒リマインダー機能を使った

Hidetaka Okamoto : クラウドクイズゲーム

github.com

カルタの問題

  • 読み手はゲームに参加できない

クラウドクイズゲーム

  • カルタは自分で作らないといけない

Alexa クラウドクイズゲーム スキルを公開しました

  • クイズモードも作成
    • 3択方式
  • サポート言語⇒日本語だけでなく英語も

Tomoyuki Tochihira : HELP ME

少子高齢化社会

緊急時には声で

  • Alexaで助けを呼ぶ

SMSで通知

  • 位置情報が送信される

alexa⇒twilioに連携

Yusuke Morishita : necco Lunch

  • 会社で昼食当番制
  • WordPressで作った昼食を登録
  • あとで経費精算

Alexa Echoで過去のメニューを確認する

  • 学校の給食などに応用を想定

Jumpei Nakada : 赤ちゃん体重ロガー

体重1kgあたり160g/日のミルクを飲まなければならない

  • 授乳前と後に体重を言うと体重とその時間を登録
  • どれくらい飲んだか、次回の授乳予定時刻を応答する

Koichiro Nishijima : うちなーぐちスキル

沖縄のコンビニ⇒ATMが方言を喋る

Alexaに方言をしゃべらせる

投票結果発表

  • 3位…Push and go!
  • 2位…HELP ME
  • 1位…赤ちゃん体重ロガー