How to Use a Serial Voice Recognition Module - Arduino Tutorial

35,406

196

18

About: Arduino Tutorials by Codebender.cc Team

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!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: What You Will Need

For this tutorial you will need:

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

(optional an usb to serial module)usbo

Step 2: 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

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!

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.

Be the First to Share

    Recommendations

    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    18 Discussions

    0
    None
    sodais

    21 days ago

    hi,

    i have followed same procedure but unfortunately only green led is working occasionally why is that ??

    0
    None
    sodais

    Question 21 days ago on Step 4

    hello,
    i have created same thing but occasionally only green led was working please tell me what steps i should follow.

    0
    None
    davedivyang99

    3 months ago on Step 5

    If i want to switch group than what should i do ?
    For example in first group i am having 5 module Light, Fan, TV, AC, Bulb..
    Than in second group i am having command like On, Off, Speed and other two..
    Than what should be code ?

    0
    None
    luqmanh36

    Question 1 year ago

    hi ....i have a question ....how can i change the code that can use the ordinary lamp that can switch on and switch off....if you have the right code suggestion....can you tell me.

    0
    None
    NabilN10

    1 year ago

    hi sorry for my bad english, its a 3 years post sorry to add a new post but, i have a big probleme. i have geeetech recognition modul and after finshing my first groupe the accessport answer 1 groupe ok but my modul stop respending with a quik flashin red light like in usb mode and no aswer in the accessport neither in arduino its always busy i want to reset it dead from step one but nothing .

    1
    None
    ShivamY14

    Question 1 year ago on Step 4

    please provide me the meaning of given below code lines :-
    Serial.write(0xAA);
    Serial.write(0x37);
    delay(1000);
    Serial.write(0xAA);
    Serial.write(0x21);

    what does they actual perform step by step?

    0
    None
    rafununu

    3 years ago

    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 ?

    3 replies
    0
    None
    codebender_ccrafununu

    Reply 3 years ago

    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);

    ::break;

    0
    None
    TomislavB11codebender_cc

    Reply 2 years ago

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

    0
    None
    TomislavB11TomislavB11

    Reply 2 years ago

    Ok i have solution:

    case 0x11:

    Serial.write(0xAA);

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

    break;

    0
    None
    Lanzky16

    3 years ago

    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...

    1 reply
    0
    None
    AmmadY1Lanzky16

    Reply 2 years ago

    Hello,

    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?

    0
    None
    Jasmeeet Singh

    3 years ago

    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??

    0
    None
    tmercados

    3 years ago

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

    http://pages.ebay.com/link/?nav=item.view&id=321841171695&alt=web

    0
    None
    codebender_ccFahadM

    Reply 3 years ago

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

    0
    None
    Hansta98

    3 years ago

    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 module....do you now how I can do this?

    1 reply