The EasyVR shield is an add-on shield to the Arduino that allows you to control the Arduino via voice commands. In this how-to article, we will learn how to connect the two together and test the EasyVR system.
Despite being called Easy Voice Recognition, the module actually utilizes speech recognition, and these two terms are often swapped with little consideration. Voice recognition is the recognition of a specific person’s voice (not what they are saying) whereas speech recognition is the recognition of what was said.
For example, a system with voice recognition could distinguish two different people from each other, whereas a system with speech recognition would convert anyone’s spoken word to text. Since the EasyVR system converts spoken commands into digital outputs, it is, in fact, a speech recognition system.
The EasyVR Shield is a rather versatile command parsing system whereby predetermined commands can be spoken. The result is sent to the Arduino for further processing. According to the datasheet, the system does have the ability to be programmed with new commands that can be speaker-dependent (i.e., voice authentication).
Not much is said, however, about how this works, and it does not apply to the normal built-in commands. The system has multiple configuration modes which also allow it to be used with a computer via a serial port or even be used independently and directly programmed. For this tutorial, we will only be using the module as an add-on to the Arduino Uno.
In order to use the EasyVR shield, the user has to solder the headers to both the EasyVR board and the shield connecting to the Arduino. While this is not a complex task, it does mean the user can potentially break the EasyVR via thermal damage, as heat transfers through traces very well.
It also means that the EasyVR shield is restricted to those who can solder, which may prevent some users from integrating speech recognition into their projects. It’s important that you:
Under no circumstance cut the pins on the shield!
The next step is to insert the EasyVR shield into the Arduino Uno. On the topside of the EasyVR shield is a jumper section that allows you to position a small jumper in one of 5 positions: SW, HW, PC, UP, and LEO. It’s imperative the jumper is put into the SW position. This allows the Arduino Uno talk to the EasyVR shield through a software serial port.
The EasyVR shield is a very complex device that has its own protocols and messaging system, so we will instead be using the library! Getting this library is very simple: it’s done by going into the Arduino Libraries Manager and then searching for EasyVR. Select EasyVR by RoboTech-srl from the list and wait for the IDE to install the library.
With the library installed, it’s time to test that the EasyVR board is working. Connect to an Arduino Uno, plug the Uno into the computer, and load the example program that comes with the EasyVR library.
Configure your IDE to target the connected Arduino Uno and program the device. Before you run the test, make sure the provided microphone is connected to the EasyVR board and then open up the serial monitor on the IDE. You should see an output similar to the image shown below.
At this point, try and say the word “Robot”, and if all goes to plan you should see the response appear on the serial monitor.
You can also check that the commands found in the built-in table work by entering “b” and then saying one of the words from each word set shown in the table below.