Creating a Multiplication Skill in Alexa using Python

by Jul 18, 2022IoT Connectivity

Introduction

In this tutorial, we will be focusing on how to create a custom multiplication skill in Alexa using Python. If you’re completely new to Alexa skills, you can get a brief idea about it by clicking here. Subsequently, we have posted regarding account creation in the Alexa developer console and creating a basic Hello World skill in Alexa. You can check those posts out if you’re interested.

Creating the Multiplication Skill

First, log in to your Alexa developer account and go to the developer console. Click on Create Skill.

Following this, type in the skill name as multiplication skill. Choose the primary language as English (US). Subsequently, choose the model as Custom and the method to host backend resources as Alexa-hosted (Python).

Finally, click on Create Skill.

Intents and Sample Utterances

Skill Interface

Next, we need to make 2 custom intents for our multiplication skill. Click on Add Intent. Then, type the intent name as SingleMultiplication and click on the Create Custom Intent option. Similarly, create an intent named MultiplicationTable.

In our skill, we are using the SingleMultiplication intent to perform multiplication between two numbers. The MultiplicationTable intent will be used to give the multiplication tables of numbers.

Next, click on the intents to add sample utterances. Sample utterances are those statements that can be expected from the user. We can add a few such utterances for each of our intents

Sample Utterances for SingleMultiplication Intent

So, for SingleMultiplication Intent, we need to create two slots as the user will ask to multiply between two numbers. Therefore, create two slots and name them as first_number and second_number respectively. Choose the slot type as AMAZON.NUMBER.

Next, we need to add some sample utterances. For eg. “tell me {first_number} times {second_number}”, “give me {first_number} times {second_number}”, “{first_number} times {second_number}”, etc. Note that the slot names should be given within curly brackets.

Similarly, we need to do for MultiplicationTable Intent.

Sample Utterances for MultiplicationTable Intent

So, for MultiplicationTable Intent, we need one slot as the user will ask for the table of a number. Create a slot and name it as “number”. Choose the slot type as AMAZON.NUMBER.

Following this, let’s add some utterances. For eg. “tell me the table of {number}”, “give me the table of {number}”, “table of {number}”, etc.

Next, click on the Build Model option at the top and wait for some time. Once the build is completed, let’s start with the coding section.

Building the model

Coding the Multiplication Skill

So far, we have completed building our model. Note that the model needs to be re-built if you make any new changes. Now let’s look at the coding part

Code Section

First, click on the Code option. Next, open the lambda_function.py file. This is our main code file.

The LaunchRequestHandler class handles the launch requests for a skill. We can modify the response that we get after launching a skill

We need to add 2 classes for our custom intents. The code is as follows

class SingleMultiplicationIntentHandler(AbstractRequestHandler):
    """Handler for Single Multiplication Intent."""
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        return ask_utils.is_intent_name("SingleMultiplication")(handler_input)

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        f_num = handler_input.request_envelope.request.intent.slots['first_number']
        f_num = int(f_num.value)
        s_num = handler_input.request_envelope.request.intent.slots['second_number']
        s_num = int(s_num.value)
        p = str((f_num)*(s_num))
        speak_output = "The product will be " + p

        return (
            handler_input.response_builder
                .speak(speak_output)
                # .ask("add a reprompt if you want to keep the session open for the user to respond")
                .response
        )
class MultiplicationTableIntentHandler(AbstractRequestHandler):
    """Handler for Multiplication Table Intent."""
    def can_handle(self, handler_input):
        # type: (HandlerInput) -> bool
        return ask_utils.is_intent_name("MultiplicationTable")(handler_input)

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response
        num = handler_input.request_envelope.request.intent.slots['number']
        num = int(num.value)
        speak_output = str(num) + " times 0 equals 0" 
        x = range(1,11)
        for n in x:
            p = " ," + str(num) + " times " + str(n) + " equals " + str(num*n) 
            speak_output += p

        return (
            handler_input.response_builder
                .speak(speak_output)
                # .ask("add a reprompt if you want to keep the session open for the user to respond")
                .response
        )

Some of the basic methods used in the code were explained in a previous post. So, you can give it a quick read by clicking here.

Next, using the skill builder object, we need to add request handlers for our custom intents. The code for it is as follows

sb.add_request_handler(SingleMultiplicationIntentHandler())
sb.add_request_handler(MultiplicationTableIntentHandler())

After making these changes, click on the Save option. Subsequently, click on the Deploy option.

Now, let’s test our model!

Testing the Model

So, in order to test the model, click on the Test option at the top. Next, enable skill testing to Development mode. Now, start giving the commands as follows

Alexa Simulator

Conclusion

So, we have successfully built our custom multiplication skill in Alexa using Python. Hope that this tutorial was informative as well as enjoyable.

Happy Learning!

Creating a multiplication Skill in Alexa using python

Written By Monisha Macharla

Hi, I'm Monisha. I am a tech blogger and a hobbyist. I am eager to learn and explore tech related stuff! also, I wanted to deliver you the same as much as the simpler way with more informative content. I generally appreciate learning by doing, rather than only learning. Thank you for reading my blog! Happy learning!

RELATED POSTS

What is Edge Intelligence: Architecture and Use Cases

What is Edge Intelligence: Architecture and Use Cases

Introduction With the latest advancements in AI technologies, we have noticed a significant increase in the deployment of AI-based applications and services in recent years. More recently, with the booming IoT industry in particular, billions of mobiles and IoT...

Apache Kafka vs Apache Spark : All you need to know

Apache Kafka vs Apache Spark : All you need to know

Introduction Due to the increase in the volume of data, the demand for Stream processing is on the rise. Just processing the data wouldn't be enough, it should be done quickly too so that organizations can react to changing market conditions on a real-time basis. This...

Creating a Hello World Skill in Alexa using Python

Creating a Hello World Skill in Alexa using Python

Introduction In this tutorial, we will be focusing on how to create a Hello World Skill in Alexa Developer Console. This is the most basic skill, and it would give us an idea about Skill-building using Alexa's developer console. If you're completely new to Alexa, you...

Creating a custom Date-Time skill in Alexa using Python

Creating a custom Date-Time skill in Alexa using Python

Introduction In this tutorial, we will look at how to create a simple date-time skill in Alexa using Python. For this skill, the only prerequisites required are an Alexa developer account and some basic understanding of Python. Also, we have created a post on how to...

All you need to know about Amazon Alexa Skills

All you need to know about Amazon Alexa Skills

Introduction In this tutorial, we will be taking a quick look at Amazon Alexa Skills. So, let us get started with the most common question - What Is Amazon Alexa? Alexa is nothing but a cloud-based voice service provided by the tech giant Amazon. In today's world,...

Wi-Fi HaLow: IEEE 802.11ah Wireless Networking Protocol

Wi-Fi HaLow (pronounced "HEY-Low") is an IEEE 802.11ah wireless networking protocol. It was released in 2017 as an update to the IEEE 802.11-2007 wireless networking standard. It uses 900 MHz, license-exempt bands, to provide extended range Wi-Fi networks, as opposed...

What is IoT Cisco Virtualized Packet Core (VPC)?

What is IoT Cisco Virtualized Packet Core (VPC)?

In this article, we will discuss about what is Cisco Virtualized Packet Core (VPC), How it supports IOT. Finally, we discus about its use cases. What is Virtualized Packet Core (VPC)? Virtualized Packet Core (VPC) is a technology providing all services for 4G, 3G, 2G,...

10 Best FTP clients for Windows and MAC users

10 Best FTP clients for Windows and MAC users

FTP is the abbreviation for File Transfer Protocol. Its a commonly used protocol to exchange files over any network. FTP clients are specifically designed software to transfer files between PC and servers over the internet. When a file is being transferred from one...

What is DNS and How does it work?

What is DNS and How does it work?

The Internet is just a network of 'n' computers that can communicate over various communication channels. Now, anything you do on the Internet is only an exchange of information(through files, scripts, etc.) So for the exchange to happen, you need to locate the other...

What is an Application Programming Interface (API)?

What is an Application Programming Interface (API)?

Introduction- What is an API? An application programming interface (API) is a computing interface that defines interactions between multiple software in an IoT environment. It defines the kinds of calls or requests that can be made and how to make them. An API is a...

VIDEOS – FOLLOW US ON YOUTUBE

EXPLORE OUR IOT PROJECTS

IoT Smart Gardening System – ESP8266, MQTT, Adafruit IO

Gardening is always a very calming pastime. However, our gardens' plants may not always receive the care they require due to our active lifestyles. What if we could remotely keep an eye on their health and provide them with the attention they require? In this article,...

How to Simulate IoT projects using Cisco Packet Tracer

In this tutorial, let's learn how to simulate the IoT project using the Cisco packet tracer. As an example, we shall build a simple Home Automation project to control and monitor devices. Introduction Firstly, let's quickly look at the overview of the software. Packet...

All you need to know about integrating NodeMCU with Ubidots over MQTT

In this tutorial, let's discuss Integrating NodeMCU and Ubidots IoT platform. As an illustration, we shall interface the DHT11 sensor to monitor temperature and Humidity. Additionally, an led bulb is controlled using the dashboard. Besides, the implementation will be...

All you need to know about integrating NodeMCU with Ubidots over Https

In this tutorial, let's discuss Integrating NodeMCU and Ubidots IoT platform. As an illustration, we shall interface the DHT11 sensor to monitor temperature and Humidity. Additionally, an led bulb is controlled using the dashboard. Besides, the implementation will be...

How to design a Wireless Blind Stick using nRF24L01 Module?

Introduction Let's learn to design a low-cost wireless blind stick using the nRF24L01 transceiver module. So the complete project is divided into the transmitter part and receiver part. Thus, the Transmitter part consists of an Arduino Nano microcontroller, ultrasonic...

Sending Temperature data to ThingSpeak Cloud and Visualize

In this article, we are going to learn “How to send temperature data to ThingSpeak Cloud?”. We can then visualize the temperature data uploaded to ThingSpeak Cloud anywhere in the world. But "What is ThingSpeak?” ThingSpeak is an open-source IoT platform that allows...

Amaze your friend with latest tricks of Raspberry Pi and Firebase

Introduction to our Raspberry Pi and Firebase trick Let me introduce you to the latest trick of Raspberry Pi and Firebase we'll be using to fool them. It begins with a small circuit to connect a temperature sensor and an Infrared sensor with Raspberry Pi. The circuit...

How to implement Machine Learning on IoT based Data?

Introduction The industrial scope for the convergence of the Internet of Things(IoT) and Machine learning(ML) is wide and informative. IoT renders an enormous amount of data from various sensors. On the other hand, ML opens up insight hidden in the acquired data....

Smart Display Board based on IoT and Google Firebase

Introduction In this tutorial, we are going to build a Smart Display Board based on IoT and Google Firebase by using NodeMCU8266 (or you can even use NodeMCU32) and LCD. Generally, in shops, hotels, offices, railway stations, notice/ display boards are used. They are...

Smart Gardening System – GO GREEN Project

Automation of farm activities can transform agricultural domain from being manual into a dynamic field to yield higher production with less human intervention. The project Green is developed to manage farms using modern information and communication technologies....