Dev'ing with Alexa
Learning the basics of building a skill in Alexa
just who the heck am I?
Terrance Smith
- Dad of a 8 year old
- Owner of Hacker Ferret Software
- 9 years exp as a Software Developer
- 4 year exp System\Network Admin in US Army
Software Consultation and Development
Belief:
Hacking Love into the software development
Mission:
Building a better Future with Software
Who are you
Dearest audience
Assumptions about You
- Experience building and hosting web apps
- Javascript || C# Experience
- Azure or Amazon Web Services
Outline
- What is Alexa
- Core Concepts
- Show me The Code
- Kewl Stuff in the Wild
- Summary
- QA
What is alexa?
- Alexa
- Lex
- Alexa Voice Service (AVS)
- Alexa Skills Kit (ASK)
Alexa
your digital assistant
Lex
Your Conversational Interface
AKA
Chat-bot Builder Framework
Alexa voice Service
"the alexa service"
Install on devices
Lamps
Intercoms
Trucks
Robots
Refrigerators
Alexa Skill Kit
The Alexa Skills Kit is a collection of self-service APIs, tools, documentation and code samples that make it fast and easy for you to add skills to Alexa.
Skill Kit
Core Concepts
- Skill Workflow
- Skill Terms
- Voice Design
- Examples
Skill Workflow
Step 1
User Issues Command
"Alexa, tell me a
dog fact."
Skill Workflow
Step 2
Parse text and determines Skill is "Dog Facts"
Send Http Post Request
with optional Json Payload to
Skill Endpoint
Convert Audio Command into Text
Alexa Host Device (Echo)
Skill Workflow
Step 3
Preforms some action determined by post request
Sends post response with text and graphicical response (card)
Process Post Request
"Dog Fact"
Skill Endpoint
Web Service
Skill Workflow
Step 4
Plays Audio
Send Card Graphics to Alexa Companion App
Convert Post Response into Audio and Graphics
Alexa Host Device (Echo)
Skill Workflow
Step 5
User Listens to Response
User Views Card
Voice Design
Wake Word
Invocation
Intent
Alexa
Ask A Dog Fact
NONE
Alexa
Tell MyCare
I'm in Danger
Alexa
Open Jepardy
NONE
Alexa
Tell FreeBusy
My name is Terrance
Skill Terms
Intent
/*
* An intent is the representation of some
* action that needs to be performed.
*/
{
"intent": "MyNameIsIntent", //<----Intent Name
"slots": [
{
"name": "Name",
"type": "LITERAL"
}
}
Skill Terms
Slot
/*
* Slots are what you could consider
* as arguments for an intent.
*/
{
"intent": "MyNameIsIntent",
"slots": [ //<----Slot Array
{
"name": "Name", //<----Slot Name
"type": "LITERAL" //<----Slot Type
}
}
Skill Terms
Full Intent JSON Listing
{
"intents": [
{
"intent": "MyNameIsIntent",
"slots": [
{
"name": "Name",
"type": "LITERAL"
}
]
},
{
"intent": "WhatsMyNameIntent",
"slots": []
}
]
}
Skill Terms
Built-In Intents and Slots
Prefer Built-In Intents and Slots over custom
Utterances
Phrases that you want your skill to be able to respond to.
MyNameIsIntent my name is {john|Name}
MyNameIsIntent I am {terrance|Name}
WhatsMyNameIntent whats my name
WhatsMyNameIntent what is my name
WhatsMyNameIntent say my name
WhatsMyNameIntent tell me my name
WhatsMyNameIntent tell me what my name is
ON phrasing utterances
Kewl stuff in the wild
The Wild
Summary
- What is Alexa
- Core Concepts
- Show me The Code
- Kewl Stuff in the Wild
- Summary
- QA
- Refs
Questions?
References
References
Software Consultation and Development
Focus:
We Focus on Tech Empowerment for Humans
Belief:
Hacking Love into the software development
Mission:
Building a better Future with Software
Dev'ing with Alexa in .Net
By Terrance Smith
Dev'ing with Alexa in .Net
Learning the basics of building a skill in Alexa with .net
- 3,114