Get Started with Voice User Interfaces Amber Matz @amberhimesmatz - - PowerPoint PPT Presentation

get started with voice user interfaces
SMART_READER_LITE
LIVE PREVIEW

Get Started with Voice User Interfaces Amber Matz @amberhimesmatz - - PowerPoint PPT Presentation

Get Started with Voice User Interfaces Amber Matz @amberhimesmatz DrupalCon Vienna September 2017 About Me Amber Matz Production Manager and Trainer Drupalize.Me Twitter: @amberhimesmatz Drupalize.Me big bullet Huge bullet


slide-1
SLIDE 1

Get Started with Voice User Interfaces

DrupalCon Vienna September 2017

Amber Matz @amberhimesmatz

slide-2
SLIDE 2

About Me

Amber Matz

Production Manager and Trainer Drupalize.Me

Twitter: @amberhimesmatz

slide-3
SLIDE 3

Drupalize.Me

big bullet Huge bullet super-important bullet

slide-4
SLIDE 4

Overview of Voice Platforms & Opportunities Designing a Voice User Interface Voice APP Concepts Endpoint Possibilities Demos

In Today’s Episode

slide-5
SLIDE 5

Take aways

by the end, You’ll better understand:

  • which platform you

want to learn

  • the major concepts

and process of voice UI implementation

slide-6
SLIDE 6

who is this for?

You are:

  • Intermediate to

advanced web or app developer You Can:

  • Copy and paste.
  • Follow instructions.
slide-7
SLIDE 7

Voice Platforms & Opportunities

slide-8
SLIDE 8

The emerging players

Alexa Google ApI.AI Cortana SIRI

slide-9
SLIDE 9

Alexa

Service Name:

  • Alexa
slide-10
SLIDE 10

Purpose:

  • Lets you build custom

voice “skills” for Alexa-enabled devices

  • r Integrate Alexa Into

your connected product.

Alexa

slide-11
SLIDE 11

Company:

  • Amazon

Alexa

slide-12
SLIDE 12

Hosting:

  • AWS LAMBDA
  • Any Internet-

accessible endpoint

Alexa

slide-13
SLIDE 13

Alexa

Devices:

  • Echo Family
  • KINDLE FIre
  • ANy "Alexa-enabled"

connected Device

slide-14
SLIDE 14

Alexa

App distribution:

  • Alexa store
  • End-User Installs via

Alexa App

slide-15
SLIDE 15

Alexa

Localization & Language Support:

  • US-EN
  • UK-EN
  • Germany-German
slide-16
SLIDE 16

Alexa

State of Developer support

  • Skill-Building UI
  • Docs, samples, API Reference
  • video walkthroughs & concepts
  • Variety of SDKs
  • Positive testing and

Publishing Experience

slide-17
SLIDE 17

Alexa

Developer home(s):

  • developer.amazon.com/

alexa

  • developer.amazon.com/

alexa-Voice-SErvice

slide-18
SLIDE 18
slide-19
SLIDE 19

Google

Service name:

  • Google Assistant
  • Actions on Google
slide-20
SLIDE 20

Google

Purpose:

  • Google Actions let

you build apps for the google assistant

slide-21
SLIDE 21

Google

Company:

  • Google
slide-22
SLIDE 22

Google

Hosting:

  • Cloud Functions for

Firebase

  • Google Cloud
  • Any Internet-

Accessible Endpoint

slide-23
SLIDE 23

Google

Devices:

  • Google Home
  • Any Google Assistant-

enabled device

slide-24
SLIDE 24

Google

App distribution:

  • Automatic distribution

to google-assistant enabled devices

  • ]User does not enable
  • r install custom apps
slide-25
SLIDE 25

Google

Localization & Language support:

  • Dependent on user’s

regional settings

  • 15 languages supported

If apI.aI used to create agent

slide-26
SLIDE 26
  • Brazilian Portuguese
  • Chinese (Cantonese)
  • Chinese (Simplified)
  • Chinese (Traditional)
  • English
  • Dutch
  • French
  • German
  • Italian
  • Japanese
  • Korean
  • Portuguese
  • Russian
  • Spanish
  • Ukranian

API.AI Agent Languages

slide-27
SLIDE 27

Google

State of Developer support:

  • Agent-building ui 


(Via API.AI CONSOLE)

  • Docs, Samples, Links to API

references and SDKS

  • Video walkthroughs & concepts
  • Variety of sdks, tools, Hosting
  • In-App and endpoint testing (Via

API.AI CONSOLE)

slide-28
SLIDE 28

Google

Developer Home(s):

  • developers.google.com/

actions/

  • developers.google.com/

assistant/sdk

slide-29
SLIDE 29
slide-30
SLIDE 30

API.AI

Service Name:

  • API.AI
slide-31
SLIDE 31

API.AI

Purpose:

  • Use a Unified api + UI to

build conversational voice or chatbot apps and deploy to one or many platforms

slide-32
SLIDE 32

API.AI

Company:

  • Google
  • (Acquired in 2016)

blog.api.ai/post/joining-google/

slide-33
SLIDE 33

API.AI

Hosting & APP Distribution:

  • Depends on integration
slide-34
SLIDE 34

API.AI

Integrations

  • Actions on Google,

Facebook Messenger, Kik, Line, Skype, Slack, Cisco Spark, Telegram, Cisco Tropo, Twilio, Twilio IP, TwiTTer, Viber

api.ai/docs/integrations/

slide-35
SLIDE 35

API.AI

Cross-platform support

  • “Voice interface is cross-
  • platform. Your agent will

understand your users no matter what device you're using. You design the interaction scenarios just once. Currently, we have SDK's for ALL most popular platforms and more to come.”

api.ai/docs/sdks

slide-36
SLIDE 36

API.AI

Localization & Language support:

  • Dependent on Integration
  • 15 languages supported

If api.ai used to create agent

api.ai/docs/reference/language

slide-37
SLIDE 37
  • Brazilian Portuguese
  • Chinese (Cantonese)
  • Chinese (Simplified)
  • Chinese (Traditional)
  • English
  • Dutch
  • French
  • German
  • Italian
  • Japanese
  • Korean
  • Portuguese
  • Russian
  • Spanish
  • Ukranian

API.AI Agent Languages

slide-38
SLIDE 38

API.AI

State of Developer support:

  • Agent-Building UI
  • Docs, Samples, API reference
  • Videos (Via Google)
  • Variety of SDKs
  • In-App and Endpoint testing
slide-39
SLIDE 39

API.AI

Developer Home(s):

  • apI.AI
  • API.AI/DOCS/SDKS
  • See also:

developers.google.com/ actions/

slide-40
SLIDE 40
slide-41
SLIDE 41

Service Name:

  • Cortana

Cortana

slide-42
SLIDE 42

Purpose:

  • Add voice (Cortana) and

“Cognitive Intelligence” to an existing bot built on the Microsoft Bot Framework.

Cortana

slide-43
SLIDE 43

Hosting:

  • Azure
  • Any Internet-Accessible

Endpoint

Cortana

slide-44
SLIDE 44

Devices supported:

  • Windows 10
  • Android, iOS
  • Harman Kardon Invoke

Cortana

slide-45
SLIDE 45

App Distribution:

  • Bing

Cortana

slide-46
SLIDE 46

Localization & Language support:

  • Cortana is optimized for

specific language and market pairings.

  • She works best when your

region and language settings are aligned.

Cortana

slide-47
SLIDE 47

Cortana Regions/Languages

  • Australia: English
  • Brazil: Portuguese
  • Canada: English/French
  • China: Chinese

(Simplified)

  • France: French
  • Germany: German
  • India: English
  • Italy: Italian
  • Japan: Japanese
  • Mexico: Spanish
  • Spain: Spanish
  • United Kingdom:

English

  • United States:

English

slide-48
SLIDE 48

State of Developer Support:

  • Public PrevieW
  • Docs
  • Only integrates with bots

built with Microsoft’s Bot Framework

Cortana

slide-49
SLIDE 49

Developer Home(s):

  • developer.microsoft.co

m/en-us/Cortana

  • docs.microsoft.com/en-

us/cortana/skills-faq

Cortana

Change paths to your local region

slide-50
SLIDE 50
slide-51
SLIDE 51

Service Name:

  • SIRI

SIRI

slide-52
SLIDE 52

Purpose:

  • SiriKit enables your iOS apps

and watchOS apps to work with Siri

  • HomeKit Allows users to

communicate with and control connected accessories in their home using your app

SIRI

slide-53
SLIDE 53

Company:

  • Apple

SIRI

slide-54
SLIDE 54

HomePod:

  • Announced product
  • “HomePod will have

more people querying Siri.”

SIRI

www.apple.com/homepod/

slide-55
SLIDE 55

Localization and Language support:

  • I don’t Know
  • HOmepod: ENglish (US,

UK, Australia)

SIRI

slide-56
SLIDE 56

Developer Home(s):

  • developer.apple.com/

sirikit/

  • developer.apple.com/

homekit/

SIRI

slide-57
SLIDE 57
slide-58
SLIDE 58

Open source options

Mycroft Jasper (I'm sure there are

  • thers, too.)
slide-59
SLIDE 59

Designing for voice

http://gph.is/1cqe4FA

slide-60
SLIDE 60

Conversation Basics

Turn-Taking

  • We take turns based on

subtle cues

  • otherwise, we talk over

each other

  • How do we take turns?

https://developers.google.com/actions/design/

slide-61
SLIDE 61

Conversation Basics

Threading

  • conversation evolves
  • ver time
  • Includes context
  • How do we keep track of

what’s been said?

slide-62
SLIDE 62

Conversation Basics

The natural efficiency of language

  • “Reading between the lines”
  • leaving some things

unspoken

  • How do we compensate for

this in code?

slide-63
SLIDE 63

Conversation Basics

Saying the same thing, differently

  • People use different words to

mean the same thing

  • context influences response
  • how can our app recognize

variable responses?

slide-64
SLIDE 64

Conversation Basics

getting “Back on Track”

  • No such thing as

errors

  • How can we Design

conversations that can get back on track?

slide-65
SLIDE 65

Cooperative Principle

Be Cooperative…Like Your Users https://developers.google.com/actions/design/be-cooperative

Cooperative conversation:

  • Be Truthful
  • Be Informative
  • Be Relevant
  • Be clear
slide-66
SLIDE 66

Choosing projects

Choose projects where adding voice will: make it faster make it easier make it fun

https://alexa.design/guide

slide-67
SLIDE 67

What's Faster?

Setting timer with touch (Microwave/Phone) Or Saying "Alexa, Set a timer for 3 minutes" from anywhere in the room?

slide-68
SLIDE 68

What's Easier?

Play/stop a song with menus, screens, buttons? Hands-free, eyes-free voice request

slide-69
SLIDE 69

More "Easy" Examples

"Single-Turn Dialogue" is easy: Asking for the weather Asking for a joke

slide-70
SLIDE 70

It should be easy

multiple-turn dialogue needs to be easy Requires more design work Explore interaction that can flow in various ways Include “Dialogue Correction” in your Design

slide-71
SLIDE 71

Designing for fun

Games should be easy to play but still present a challenge Is there a place to incorporate humor, surprise,

  • r delight?

How do you want users to feel during/after interaction?

slide-72
SLIDE 72

Be choosy

Be choosy about what to expose as voice interaction Does it make it Faster, easier, or more fun for the user?

slide-73
SLIDE 73

What's the purpose?

Why would people want to use your voice UI? In what context will they use it? What will they get from it that they can't get another way?

slide-74
SLIDE 74

Create a persona

What’s your UI’s personality? What kinds of things would they say? Is it in-line with your brand’s values?

slide-75
SLIDE 75

script dialogues

Write the Script between AI and the user Focus on the "happy Path” (AT FIRST!) Does the dialogue flow naturally?

slide-76
SLIDE 76

Tips for Scripts

Keep interactions brief Write for How people talk, not read or write Indicate when the user needs to provide info

slide-77
SLIDE 77

Diagram the flow

reference the happy path Script map out all the inputs needed from the user branch out to cover additional logic, Fallbacks, and conversation repair

slide-78
SLIDE 78

Script example

https://developers.google.com/actions/design/how-conversations-work

slide-79
SLIDE 79

Interaction model

what are the concrete things that can happen? 
 => Intents What is said to make these things happen? 
 => Utterances/User Says What data do you need to fuLfill the request?
 => Slots/Entities

slide-80
SLIDE 80

Resources

Video: 
 Actions on Google: Conversation Design Tips
 
 youtu.be/MSUPVbbhIGA

slide-81
SLIDE 81

Resources

The Conversational UI and Why It Matters
 
 developers.google.com/ actions/
 design/

slide-82
SLIDE 82

Resources

Voice Design Guide
 
 alexa.design/guide

slide-83
SLIDE 83

key concepts

slide-84
SLIDE 84

Activation

Wake word or action

  • “Hey Siri”, “Alexa”, “OK,

Google”

  • Push a button on

device to activate

slide-85
SLIDE 85

Invocation

(Keywords +) The name of your app

  • ALexa: “Ask/open/

launch FiSh Jokes”

  • Google: “Let me talk to

Fish Jokes”

slide-86
SLIDE 86

Intents

Maps what the user says to actions

  • Built-in Intents help with

common responses every app should have

  • Custom intents are the

Voice UI’s special sauce

slide-87
SLIDE 87

user says/utterances

phrases or words your app recognizes

  • add many variations
  • what about context?
  • can contain slots/entities

which feed arguments to your endpoint

slide-88
SLIDE 88

User says

slide-89
SLIDE 89

Utterances

slide-90
SLIDE 90

slots/entities

  • ptional arguments
  • defined as a type &

populated with terms

  • used as parameters in

“user says” phrases/ utterances

slide-91
SLIDE 91

Intent: entities

slide-92
SLIDE 92

entities

slide-93
SLIDE 93

Slots

slide-94
SLIDE 94

specify entities

slide-95
SLIDE 95

Select Slot

slide-96
SLIDE 96

slots in phrases

slide-97
SLIDE 97

entiTies in phrases

slide-98
SLIDE 98

Cloud Web Service

AI

Request>>> <<<Respoose

Skill

User

Device

slide-99
SLIDE 99

fulfillment

slide-100
SLIDE 100

endpoint possibilities

slide-101
SLIDE 101

Hard-coded values

Skill Voice UI Service

Platform Cloud

Respoose

Hard- coded values in an array

slide-102
SLIDE 102

Web services API call

Custom Voice UI Voice UI Service

Platform Cloud

Respoose

Results from a Web Services API Call

Views JSON

slide-103
SLIDE 103

All Drupal

Custom Voice UI Voice UI Service

Web Service

Self- Hosted

slide-104
SLIDE 104

there’s a module for that!

slide-105
SLIDE 105

Endpoint possibilities

Drupal Integration:

  • Views Display: Rest Export
  • Alexa Project
  • Chatbot API project
  • APIAI Webhook Project
  • PHP SDK for API.AI
slide-106
SLIDE 106

Views: REST Export

slide-107
SLIDE 107

alexa

slide-108
SLIDE 108

chatbot API

slide-109
SLIDE 109

Chatbot intent Plugin

big bullet Huge bullet super-important bullet

slide-110
SLIDE 110

Views: Chatbot_Intent

slide-111
SLIDE 111

API.AI Webhook

slide-112
SLIDE 112

API.AI php sdk

slide-113
SLIDE 113

thank you, maintainers!

Drupal Integration:

  • Views Display: Rest Export
  • Alexa Project
  • Chatbot API project
  • APIAI Webhook Project
  • PHP SDK for API.AI
slide-114
SLIDE 114

Testing & Publication

slide-115
SLIDE 115

Testing

slide-116
SLIDE 116

Submit for publication

It will be Thoroughly tested Expect feedback within 1-2 days address feedback and 
 re-submit! Once approved, it’s Published!

slide-117
SLIDE 117

Recap

Overview of Voice Platforms & Opportunities Designing a Voice Interface Voice APP Concepts Endpoint Possibilities & Drupal Integration

slide-118
SLIDE 118

Feedback

Session Title:
 Get Started With Voice User Interfaces Visit the session page

  • f this conference and

click “Evaluate”

Contact Amber Matz on Twitter @amberhimesmatz