Introduction: How to Use a Serial Voice Recognition Module - Arduino Tutorial

Picture of How to Use a Serial Voice Recognition Module - Arduino Tutorial

In this tutorial you will learn how to use a voice recognition - serial - module with the Arduino uno board. This module can store up to 15 voice commands. Those are divided into 3 groups, with 5 commands in each group.

First we should train the module with voice instructions group by group. After that, we should import one group before it could recognize the 5 voice instructions within that group.If we need to implement instructions in other groups, we should import the group first. Only one group can be active per time.

In this tutorial we will use an RGB LED and we will try to change the color of it with voice commands.

So, let's get started!

Step 1: What You Will Need

Picture of What You Will Need

For this tutorial you will need:

  • Arduino uno
  • Breadboard (or breadboard shield)
  • Voice Recognition Module (serial)
  • Microphone
  • 3x 220 Ohm resistors

(optional an usb to serial module)usbo

Step 2: Recording

Picture of Recording

The first think that we have to do is to record voice instructions/commands. Each voice instruction has the maximum length of 1300ms (1.3sec), which ensures that most words can be recorded. Once you start recording, you can’t stop the recording process until you finish all the 5 voice instructions/commands of one group. Also, once you start recording, the previous content of that group will be erased.

Download and extract AccessPort from here. This tool will allow us to send HEX commands to the voice recognition module.

Connection between Arduino* and module for recording procedure:

  • Module Vcc to Arduino 5V
  • Module GND to Arduino GND
  • Module RX to Arduino RX
  • Module TX to Arduino TX

*You must remove ATmega328p from board or program it with blink example. If you want you can also use one usb to serial board to complete this procedure.

Available commands:

  • Delete Group 1 - send hex AA 01
  • Delete Group 2 - send hex AA 02
  • Delete Group 3 - send hex AA 03
  • Delete All Groups - send hex AA 04
  • Record Group 1 - send hex AA 11
  • Record Group 2 - send hex AA 12
  • Record Group 3 - send hex AA 13
  • Import Group 1 - send hex AA 21
  • Import Group 2 - send hex AA 22
  • Import Group 3 - send hex AA 23
  • Query the recorded group - send hex AA 24

Let's get started with our voice commands!

We will record the group 1 with 5 commands: White, Red, Blue, Green and OFF.

Open AccessPort app and begin the serial communication at 9600 bps. (second image above).

Now click on hex and type AA 11 and click the send button.

This will start the recording procedure for the first group.

In this step, time is the key... You will be asked to record each command (white, red etc) three times.

If you having troubles with this, try to read this manual. When recording is completed type and send AA 21 to test you voice commands.

Disconnect the voice recognition module from the Arduino uno board and proceed to next step.

Step 3: The Circuit

Picture of The Circuit

The connections are pretty easy, see the above image with the breadboard circuit schematic.

Note: Module RX - Arduino TX and Module TX - Arduino RX

Step 4: The Code

Here's the code, embedded using Codebender!

Try downloading the Codebender plugin and clicking on the "Run on Arduino" button to program your Arduino board with this sketch. And that's it, you've programmed your Arduino uno board with this sketch!

Step 5: Well Done!

Picture of Well Done!

You have successfully completed one more "How to" tutorial and you learned how to use the voice recognition module. What next? Try to add more voice commands to your code.

I hope you liked this, let me know in the comments.


rafununu (author)2015-10-26

Nice work.

You cannot create more than 5 orders which limits the possibilities. We can create orders such as "Red" "More" "Blue" "Less" "Green". That's not enough, I'd like to have "Full" "Zero" "Fifty" etc. any idea ?

codebender_cc (author)rafununu2015-11-09

Hi! You can use only 5 voice-commands with this module. :(

Only one group can be available per time.

You can try to call another group inside voice-command from another group, like this:

::case 0x11:

:: //Code for 1st command of group 1 - Do something...

:: //Send 0xAA00 to exit group

:: Serial1.write(0xAA);

:: Serial1.write(0x00);

:: delay(200);

:: //send 0xAA22 to enter group 2

:: Serial1.write(0xAA);

:: Serial1.write(0x22);


It does not work. can you help me whit this. I am trying to use all 3 grups

TomislavB11 (author)TomislavB112017-06-14

Ok i have solution:

case 0x11:


Serial.write(0x22);// enter group 2


Lanzky16 (author)2016-06-23

I am trying to help a friend who has a school project on voice recognition and they were asked to put limitations for the number of users that could use the machine. for example: the number of users will be limited to 4 persons and the 5th person will not be able to activate the machine or whatever... just like using voice as password.. something like that. can you help us? please...

AmmadY1 (author)Lanzky162016-12-23


I'm trying a similar project where only 4 people can turn ON LED by saying ON, but if fifth person says On the LED will not lit.

Any luck?

Jasmeeet Singh (author)2016-07-17

Is there a flexibility in the recognition of the commands?? Can it only recognize keywords in the command given by the speaker so that the speaker can say anything that contains the keywords??

tmercados (author)2015-12-05

can I use this module?
I want to use it because in the description it said that it supports up to 80 voice comands.

FahadM (author)2015-11-06

No Videos??

codebender_cc (author)FahadM2015-11-09

Hi! For video you can search the web or youtube.

Hansta98 (author)2015-11-08

Hi goes your project with the voice recognition module?! Did you use also the module from GEEETECH? I bought also this module but I am not able to program it. If I AA11 to import the commands for group one nothink happen. Now I think I try to reset the you now how I can do this?

codebender_cc (author)Hansta982015-11-09

Hi! Read step 2 again and see also the images.

About This Instructable




Bio: Arduino Tutorials by Team
More by codebender_cc:How to use a magnetic door switch / sensor with ArduinoHow to Measure LUX With ArduinoHow to Control an RGB LED Strip - Arduino Tutorial
Add instructable to: