Introduction: 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
For this tutorial you will need:
- Arduino uno
- Breadboard (or breadboard shield)
- Voice Recognition Module (serial)
- 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.
- 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.
Question 1 year ago on Step 5
What are the five pins along the side of the module used for?
Question 1 year ago
how to creat group 2 please help me
Question 2 years ago on Step 2
hye, sorry im in urgent now.. when im try to send the code AA36.. after i click send, the '' common mode'' doesn' t appear.. and im try to use a delete code''AA04'' its nothing happen..,, is it my voice recognition module is broken? can i know why? can you help me to fix this?.. thankyou, sorry for bad english
2 years ago
Is it possible to use an if statement in one case, to use one command to turn a led on when off and off when on?
Question 2 years ago
Can we do the same thing with atmega32. If yes, whats the new code
3 years ago
i have followed same procedure but unfortunately only green led is working occasionally why is that ??
Question 3 years ago on Step 4
i have created same thing but occasionally only green led was working please tell me what steps i should follow.
3 years 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 ?
Question 4 years 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.
4 years 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 .
Question 5 years ago on Step 4
please provide me the meaning of given below code lines :-
what does they actual perform step by step?
7 years ago
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 ?
Reply 7 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:
:: //Code for 1st command of group 1 - Do something...
:: //Send 0xAA00 to exit group
:: //send 0xAA22 to enter group 2
Reply 5 years ago
It does not work. can you help me whit this. I am trying to use all 3 grups
Reply 5 years ago
Ok i have solution:
Serial.write(0x22);// enter group 2
6 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...
Reply 6 years ago
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.
6 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??
7 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.
7 years ago