In recent times, millions of devices are now Alexa enabled, and many embedded devices are in development and started supporting Alexa or Voice User Interface (VUI). Alexa skill enables a user control and customized voice base query (in other words enable us to monitor and control) cloud-enabled smart home devices such as lights, door locks, cameras, thermostats, and smart TVs from Alexa enabled devices.
How does Alexa work?
For example, you have a microwave oven and Alexa in your home. So as a company or developer you can add new skills in the amazon skill library which will let users query like this to Alexa
{
Hey Oven, please start the baking cycle, and oven will start that baking/microwave cycle
}
In other words it will let you control your microwave using Alexa with the customized voice user interface.
Alexa skills enable us to set up a customized voice-based interaction, particularly in product interest, and let it operate the devices based on voice commands received. It could be “turn on my blue light”, “Remind me of baking on my kid’s birthday” etc. It also lets you connect your embedded devices, for example, you can connect your Alexa device to your microwave oven and control its baking cycles. Or having customized light and you can control it having Alexa skill kit integration on it.
Enabling Alexa on Embedded Devices
To enable Alexa skills on any embedded device, we will need SDK, which lets us connect Alexa APIs and amazon cloud in the voice-based interface, will need SDK. So, Alexa Skills Kit is comprised of tools, application program interfaces (APIs), code samples and documentation that enables a developer to add skills to the 10,000-plus voice recognition capabilities available on Alexa.
It’s amazing if you can connect your embedded devices to Alexa and control it over simple voice commands. For establishing the connection between Alexa & Raspberry Pi, we require certain open-source services and SDK. Raspberry will act as the end client to receive the intent from Alexa and act upon it. For example, turning on the LED.
To demonstrate Alexa Skills on embedded devices. We can connect and control Raspberry Pi using amazon Alexa echo.
- To build customized alexa skill we will have to use Flask-Ask.(Open Source SDK for Alexa Skills)
- To connect, we will use ngrok. ngrokwill connect a HTTP tunnel from Raspberry Pi to Alexa.
Perquisites for deploying Alexa skills on Raspberry Pi
- An Amazon developer account.
- A raspberry pi device with LED connection.
- Flask Ask – Installed on Raspberry Pi.
- Ngrok installed on Raspberry Pi.
- An Alexa-enabled device such as Amazon Echo.
- Knowledge of JSON and one of the supported languages for AWS Lambda or REST Service: Node.js, Java, Python etc.
Communication flow
- User asks raspberry pi to turn on/off LED on Alexa.
- Echo dot device forwards Request stream voice
- Amazon voice service platform identifies the skill name and forward’s request
- Custom Alexa skill receives request and matches the Intents, matches the slots, and its name/type.
- Response will be received from Raspberry pi end via API gateway
- Alexa converts returned responses from text to speech and streaming response on Echo Dot.
- Turns on/off LED on Raspberry Pi as per request.
Related Content– /resources/success-stories/alexa-integration-for-a-home-automation-hub/
Conclusion
We have discussed Alexa skills and one sample PoC for creating custom skills and integration on raspberry pi where light is connected/controlled by Alexa skills. This reference will be a good help to start on Alexa Skills for any newbie who is interested in Alexa skills and VUI-based product development. eInfochips have a highly skilled team who can support the creation of end-to-end product design, and the development of voice user interface product. eInfochips holds strong experience in Alexa skills development, customization, and deployment. To know more talk to our experts today.