Alexa, make a VUI (voice ui)
Design
Ways to prototype
- Role-play
- Scripts
- SaySpring -> free but request an invite
- HighFidelity
Design principles
- Keep it short
- Voice is a great input but less nice for output (alexa talking to you)
- have a low amount of things you can do
- Cognitive load People can't remember things for very long, keep them very short.
- Banking app knowing and doing math with the credit card account and how much is left.
Utterances: What people actually say
Intent: What you're actually trying to say
Principles of conversation
-
Sound Natural
- Talking out loud helps a lot
-
Keep it short
-
Watch for cognitive load
-
think about Affordances
-
Take turns
- Don't ask a question then keep talking!
-
Use confirmation phrases
- Explicit
- Good for things that are high risk or likely to go wrong like names
- 500$ are you sure you want to do this?
- Implicit Feedback *
- Explicit
-
Give people credit
- Don't force people to say things one way
- Prime them but don't tell them what to say
-
Vary your responses
- Great, alright, sweet.
-
Engage beginners and experts
- Don't tell them tons of stuff after they've heard it a lot
-
Conversation Repair
- No input
- Say it again
- better give more helpful re-prompts. *
- Bad to undersand
- Expect variations
- prepared to step in and help anytime
- Make it contextual
- Fail Gracefull
- "Let's talk again later, here's how to get back"
- No input
-
Use SSML
- Change the way you say, whispered, pronounce it in very particular ways
- <audio ..../> to have 3rd party audio
- Change the say you pronounce it
- etc...
-
more on the website
-
Wake word -> "Alexa"
-
Pizza Plannet -> app name
-
Intents: Order me a pizza -> OrderPizzaIntent
- I need my pizza
- I need a pizza
- I be got pizza
- My regular
-
Slot (alexa) / Entitiy (google)
- {size} -> list of stuff that are in that category
- Large/Big -> large
- {size} -> list of stuff that are in that category
-
Responses
Types of skills
- Flash Briefing
- rss feed of information
- Custom
- What we're making
- Video
- Like for TV
AWS Lambda ARN
- Lambda functions are the way to go usually
const Alexa = require('alexa-sdk');
const handlers = {
'LaunchRequest': function() {
this.emit(":ask", "Hello my friends at Open WEst!", "no really, hello");
}
}
Ideas
- Reserving a room
- Check/Log expenses
- Sending a coworker a message.