After the topic of Alexa had already come up in the company at communicode OpenSpace, among other things, we - the second-year developer trainees - decided to develop our own Alexa skill in order to deal more intensively with the technology. To get an introduction to the topic, we attended a workshop. This took place on February 26th - 27th, 2018 in the Design Offices in Düsseldorf and was held by Sascha Wolter. (Senior Technology Evangelist for Alexa)
The workshop was not aimed exclusively at developers, but was attended by a wide audience
We started with an overview of the hardware compatible with Alexa. The possible uses and the technical equipment of the various devices were explained. These included: Echo, Echo Dot, Echo Show and Echo Spot.
We continued with the basic setup and structure of an Alexa skill. A skill is a specific application that expands Alexa's range of functions. As an example, we looked at a simple skill that contained the search for "Points of Interest" (POI) in the Stuttgart area.
A skill essentially consists of 2 components:
- the backend
- the voice model
The backend is a programmed application against the Alexa API. All common languages are supported (Javascript, Java, Python etc.). This application must be made available on a server. There are two variants for this. On the one hand the cloud-based solution, hosting with the Amazon service "Lambda". On the other hand, the possibility of running this application on your own server. While only the Lambda variant was considered in the workshop, we later used our own server for our project.
The voice model contains the set of rules for the voice commands. For this purpose, the configuration tool was explained and shown: the so-called "developer console". The individual parts of the language model can be configured there.
The language model consists of the following parts: ### Wake word
This is usually "Alexa" and this term starts the speech processing ### Invocation name
This is the unique name of the skill to use ### utterance
Put simply, this is the configuration of the commands that the skill can process. ### slot values
Synonyms for terms that the skill should understand.
This ended two entertaining and informative days in Düsseldorf. Overall, the workshop was a good overview of Alexa. He made it easier for us to get started, so that we were then able to delve deeper into the topic and develop our own skills. Our skill can be started with the name "Employee Info". This makes it possible to find out in which office a colleague is currently sitting. If you say "I'm looking for Max Mustermann's employee", the wiki looks up live where this employee is located and the corresponding location is displayed. We provide the Java backend for this on our own Tomcat with upstream NGINX.