Getting to know the Amazon Echo

A further understanding on the Amazon Echo’s logic, mechanisms & patterns.

A few weeks back, the Amazon Echo (Alexa) was introduced in the studio. Having experienced voice-controlled interaction before, I realised this could be a real candidate to shape the future — so it was time for me and Alexa to get to know each other.

My aim was to gather a further understanding of Amazon’s personal assistant, including its logic, mechanisms & patterns. Ideally, these elements would support, at a later stage, the building of an Amazon Alexa Skill.

Getting Started.

I began my journey at the core, the official Amazon Alexa documentation. From there I found my way to articles and tutorials that allowed me to understand what was needed and what made the Amazon Echo function.

  1. Amazon Alexa Skill Tutorial (pluralsight)
  2. Amazon Developers (youtube)
  3. Alexa Skills Quick Start

The Logic.

As the documentation and tutorials state, we are required to set up a few things in order to begin experimenting.

  1. Amazon Web Services (AWS) Account.
  2. Amazon Developer Account.
  3. Test your skill.

Before creating any of the required accounts its important to remember to use the same account details that your Alexa is running on, eg: your Amazon account.

This is to ensure that Alexa will have access to your skill before publishing it — this is a great way to test the skill during the prototyping phase.

Step 1— Amazon Web Services (AWS)

The Amazon Web Services (AWS) is a cloud services platform that offers, compute power, database storage, content delivery and other functionality to help businesses scale and grow.

AWS will allow us to create a working function for our new skill, meaning that we will be able to establish a connection between our skill and the Amazon Alexa Ai.

Further to this — high-level attributes will be defined during this step, such as:

  1. Region for where the skill will be used. (Not all regions will support the collaboration of Lambada and the Alexa Skills Kit)
  2. Blueprints/templates for certain skills will be made available to aid developers. (these will be provided in various coding languages)
  3. Ability to set the Alexa Kills it as a trigger for the Lambada Function.
  4. Naming, Description, Runtime (coding language), function handler and function role.

Once all the above has been completed to one’s specific requirements, the AWS will create the function, along with the Amazon Resource Name (ARN).

Amazon Resource Name (ARN) format identifies any resources in AWSarn: partition : service : region : namespace : relative-id. For your Amazon S3 resources, aws is a common partition name. If your resources are in China (Beijing) region, aws-cn is the partition name.

Step 2— Amazon Developer Account.

Using the AWS Lambada function we created in step 1, and the Amazon Resource Name (ARN) we will be able to link and establish an endpoint between the skill and the AWS. Once this step is completed Name, Description and Invocation name will need to be established (this will be the word/phrase that users will speak in order to trigger the skill)

“Alexa, open {invocation name}”

During this step, we familiarise ourselves with the mechanism and patterns that determine the behaviour of an Amazon Alexa Skill. These particular mechanisms come in the form of intents, custom slots and utterances which are all control by a voice interaction design pattern.

The Mechanisms & Patterns

Intents.
Actions that allow the user to interact with the skill — specified in a JSON structure called Intent Schema. An intent represents a specific actions within the skill when called upon from the user. Intents could potentially hold further arguments, these are known as slots.

Custom Slot Types.
These are grouped list values relating to a certain intent, these slots allow for a better user experience — the more the better.

Sample Utterances.
Different variations of phrases that will allow the user to invoke and trigger certain intents within the skill.

Voice Interaction Design.
Its correct application will prepare your skill to welcome and interact with the vast variation of users while maintaining a solid experience throughout all user journeys.

Some key factors to keep in mind when designing a Voice User Experience:

  • Don’t try to do too much, — the user only has voice as a reference during his/her experience, on top of that the interaction time is much shorter than other platforms, thus don’t attempt to prolong the journey.
  • Keep it simple, — we don’t want to overwhelm the user over such a short interaction time so the dialog should be simple and engaging. By asking questions we can educate and guide the user through our skill.
  • Keep in mind customer expectations, — Attempt to create a natural conversational interaction and experience, your skill should aim for a human to human conversation. A good exercise to help achieve this to role play, allowing you to notice what sounds human and what does not.

Step 3— Test your skill

Having completed all of the steps Alexa gives us the ability to test the skill. The prototyping phase is of great importance, allowing us to improve the skill and making sure the user experience will be optimum.

3 Ways of Testing

  1. Test your skill on your Amazon Echo, Echo Dot, or any Alexa device by saying, “Alexa, ask {invocation name}”
  2. Utilise the Service Simulator from the Amazon Developer Portal.
  3. Try the Echo Simulator Community Edition at Echosim.io.

During this process I gained enough understanding to start building, and with every prototype run new ideas surfaced — I guess Alexa and I are going to spend quite some time together, but who knows, I might be drawn to a new assistant.

“Ok Google …”

- Daniele