Sounds like gobbledygook right, I certainly though so when I first looked into the Alexa skills but once you’ve turned it round in a way you can understand it all makes sense, lets break things down a little.
Firstly Alexa and Echo, commonly referred to as the same sort of thing but they are 2 quite distinct separate items.
Alexa is the cloud-based personal intelligent assistant developed by Amazon, made popular by the Amazon Echo and the Amazon Echo Dot devices. It is capable of voice interaction, music playback, making to-do lists, setting alarms, streaming podcasts, playing audiobooks, and providing weather, traffic, and other real time information, such as news. Alexa can also control several smart devices using itself as a home automation system.
Amazon Echo, Dot and Show are brands of smart speakers developed by Amazon. The devices connect to the voice-controlled intelligent personal assistant service Alexa
Most devices with Alexa allow users to activate the device using a wake-word. You can change your wake word but only to one of the following: Echo, Alexa and Amazon
The easiest way to describe a skill is probably like downloading an app on your phone, but rather than being an app in it’s own right (Alexa is the app) the skill runs within the Alexa app. It’s downloaded and enabled within the app itself and then allows you to use the specific skills within that app via Alexa.
Users can begin interacting with a skill without providing a specific question, request, or command (intent) by simply using a start phrase. The current start phrases currently exist Ask, Begin, Do, Launch, Load, Open, Play, Play the game, Resume, Run, Start, Start playing, Start playing the game, Talk to, Tell, Use
An invocation name is the word or phrase used to trigger your skill. It enables Alexa to distinguish between different skills you have installed and enabled. A few examples could be: tell the Thermostat to turn the temperature to 20 degrees, Alexa, ask British Gas for my current balance or Alexa, ask My Council is it bin day tomorrow?
An intent is in essence what the users is trying to achieve within your code, they will use utterances to run a specific intent. For example the My Council skill could have an intent of BinCollection could be called within your code when a user uses the utterances below.
Utterances are the specific phrases that people will use when making a request to Alexa. There is fairly much no end to the different number of phrases you can use but they would ideally be all the phrases that you would probably hear in real life if someone was asking for a service. They are joined with the start phrase and invocation name to achieve the required response.
Lets take BinCollectionIntent as an example, how many ways can you ask about bin collection? Here’s a few examples:
- Alexa, ask MyCouncil is it bin day today?
- Alexa, ask MyCouncil when is my next refuse collection due?
- Alexa, ask MyCouncil what is the day of my next recycling collection?
- Alexa, ask MyCouncil when should I put my bins out?
- Alexa, ask MyCouncil when is my “Recycling” bin being collected? (see slots for more info on this one)
Here you can see the use of the wake word (“alexa“) then the start phrase (“ask“) followed by the invocation name (“My Council“) and finally the utterance for a specific intent (“is it bin day today?“). You could have tons of utterances all slightly different, they can all be connected to run one Intent
A slot is a variable that relates to an intent allowing Alexa to understand information about the request. For example the My Council skill could extend it’s understanding of the intent and know which bin the user is talking about, for example “Brown“, “Recycling” or “Landfill” by adding these as custom slots for this intent.
There are a number a number of built in slot types, such as dates, numbers, time, etc. But you can also create custom slots for variables which are specific to your skill.