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

 

2

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
4

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