The Internet of Things revolution has ushered in a wave of “Smart Home” devices and gadgets, and with it, new opportunities for creative hacking and software development. The Amazon Echo suite of devices, using the Internet-connected conversational interface commonly known as “Alexa”, is backed by a developer-friendly ecosystem with open source tools, documentation, tutorials, code examples, and a free (as in no-cost) open invitation to developers to create “Alexa Custom Skills” that anyone can download and use with their Echo devices.
In this session, you will learn:
- What to consider when designing a voice user interface
- The various components of an Alexa custom skill
- How to proceed through the custom skill development process
- 3 implementation methods including 2 ways to integrate Drupal data into your skill
To get the most out of this presentation, you should be an intermediate coder, and comfortable tinkering with code. But you don’t have to be a Node expert, a Drupal expert, or a Web Services expert to create a custom Alexa skill. It’s a pretty accessible development experience.
Learning Objectives & Outcomes:
By the end of this presentation, you should feel empowered and ready to create your own custom Alexa skill, with or without Drupal integration.
2. About us
Amber Matz
Production Manager and Trainer
Drupalize.Me
@amberhimesmatz
Blake Hall
Senior Developer and Trainer
Drupalize.Me
@blakehall
3. What We’ll CoveR...
• Designing a Voice Interface
• Concepts & Process
• Creating Your first custom
alexa skill
• 2 ways to integrate Data from
a drupal 8 Site
• demos!
4. • Custom skills
• Smart Home Skills API
• Flash Briefing Skill API
• Video Skills api (new)
Types of Skills
5. Soon, You will be:
Ready to create your
own custom alexa skill!
• With or without Drupal
Integration
• Using "AWS Lambda" or A
custom Endpoint
11. It should be easy
• multiple-turn dialogue
needs to be easy
• Requires more design
work
• Explore interaction that
can flow in various ways
12. Designing for fun
• Games should be easy to play
but still present a challenge
• Is there a place to
incorporate humor, surprise,
or delight?
• How do you want users to
feel during/after
interaction?
13. Be choosy
• Be choosy about what
to expose as voice
interaction
• Does it make it Faster,
easier, or more fun for
the user?
14. Design for voice
• Determine the purpose
• Identify User Stories
• write out dialogue for
the "happy paths"
• Diagram the user flow
• Create Interaction model
15. how not to start
• Don't start with your
apI
• Don't just add voice
commands for each API
endpoint
• Don't expect users to
know your apI
16. What's the purpose?
• Why would people want
to use your alexa skill?
• What will they get from
the skill that they
can't get another way?
17. User stories
• What can a user do, or not do,
with your skill?
• What Info Does a person Need to
use your skill?
• What features directly support
the purpose?
• Is there Info They'll need from a
website or app?
18. Dialogue Script
• Write the Script between
alexa and the user
• Focus on the "happy
Path"
• Does the dialogue flow
naturally?
19. Tips for Scripts
• Keep interactions brief
• Write for How people
talk, not read or write
• Indicate when the user
needs to provide info
20. Diagram the flow
• reference the happy path
Script
• map out all the inputs
needed from the user
• branch out to cover
additional logic or error
cases
21. User: “Alexa, Ask fish
jokes for a silly joke”
Alexa: "Why are salmon
so good at using git?
They Love to merge
upstream.
22. Flow Diagram
Alexa, ask Fish Jokes for
a [silly] joke.
Return a joke tagged
with term “silly” from
fishjokes4.life
(Drupal site)
23. Interaction model
• Implement the entire flow
• what are the concrete
things that can happen?
=> Intents
• What is said to make
these things happen?
=> Utterances
24. Recap: Design for voice
• Be Choosy about the project
• Determine the purpose
• Identify user stories
• Write a Script
• Diagram the flow
• Create the interaction model
53. configuration
• created in developer portal
• so that: alexa can route
requests to the service
for your skill
• brings all skill components
together
54. Invocation Name
• Identifies the skill
• user includes this name
when initiating a
conversation with your
skill
• must be unique
112. Continue development
After skill “Goes Live”:
• Dev version auto-created
in Developer portal
• Work on dev, submit when
ready
• Certified dev version
replaces live version
123. ECHO DOT + ARDUINO
+ Big Mouth Billy Bass
12v power
Headphone
Audio out
2 or 3 motors
connected.
1 in use.
124. Tutorial
• Instructables.com
• “Animate a Billy Bass
Mouth With Any Audio
Source”
• by Donald Bell
http://www.instructables.com/id/Animate-a-Billy-Bass-Mouth-With-Any-Audio-Source/
125. Recap
• Voice Design Process
• Interaction Model
• 3 ways to create a
custom skill, with +
without Drupal
integration