Alexa Skills and Alexa Skills Kit: An Introduction
Alexa is one of the world’s most popular digital assistants. It has only grown in popularity since its launch in 2014, reaching millions of users worldwide through Amazon’s products like the Echo and the Alexa mobile app.
Alexa is not just a digital assistant though. It’s also an ecosystem of tools that can help us build products powered by voice. Alexa is now being integrated into a variety of products, from cars to clocks. We as a developer can also leverage Alexa to build products powered by voice!
Alexa Skills: What are they
A good way to think about Alexa as a developer is to think of it as an operating system, like Android.
Google gives Android developers a set of tools to build apps for Android users. Google also allows developers to make their apps available on the Play Store. The same concept is used with Alexa. Amazon allows us to build applications for Alexa by providing us with a set of tools. We can then distribute our Skills to make them available to users worldwide through the Alexa Skills Store!
The voice applications that we build for Alexa are called Alexa skills. Users who have an Alexa powered device can enable our Alexa Skill from the Alexa Skills Store, which is available through the mobile Alexa app or through Amazon on the web. Once enabled, all they need to do to use our Alexa Skill is ask! We will look at what goes into the inner workings of Alexa and Alexa Skills more deeply in the next lesson.
How do we make Alexa Skills?
There are various first and third-party tools and Software Development Kits (SDKs) available that can help us get started building Alexa Skills! Although we will be mainly looking at the official SDK in this course, the ASK (Alexa Skills Kit) SDK, some of these other tools and SDKs are worth noting. Many of them are also no-code, meaning we don’t really need to write any code at all to start building. Let’s take a brief look at a few:
- Voiceflow: Voiceflow is a popular third-party no-code Alexa Skill-building tool. It allows us to plan our voice UX in terms of flow charts. It is a fantastic place to get started in the world of voice.
- Zammo.ai: Zammo.ai is a no-code, voice-first, conversational AI solution for enterprise businesses. Powered by Microsoft Azure, their cloud-based platform is easy-to-use even for non-IT business professionals and can create and deploy informational content for businesses quickly.
- Alexa Blueprints: Alexa Blueprints is an official tool from Amazon that provides users and developers a readymade set of templates for common Alexa Skills, including quotes or trivia-based Skills. It’s also a no-code tool that allows developers to focus on the content.
- Jovo: Jovo is an open-source framework that allows developers to build cross-platform voice applications that will work with both Google Assistant and Alexa using a common code base.
- Alexa Skills Kit: Alexa Skills Kit is what we will be focusing on in this course for building Skills. Let’s take a look at it in more detail in the next section.
Alexa Skills Kit
While there are SDKs available in various languages such as Python and Java, we will be using the ASK SDK for Node.js in this course.
Building Skills with the Alexa Skills Kit
Building Alexa Skills is analogous to how we would build a mobile or web app. Any web or mobile app is usually broken down into two components; the front-end, and the back-end. It’s the same for Alexa:
- Front-end: The front-end for an Alexa Skill consists of the Voice User Interface(VUI). The VUI is represented by a model which the developer defines in the developer console. The model mainly represents the different interactions the customer can have with our Alexa Skills.
- Back-end: The back-end is the component that hosts our business logic. We can either build a custom web server or use a server-less framework like AWS Lambda, which will manage auto-scaling and maintenance for us while minimizing cost. AWS Lambda resources are also automatically provisioned for us when choosing “Hosted Skills” in the Alexa developer console. We will be using Hosted Skills in this course.
Both of these aspects will be explained further once we get started with the projects.