Wednesday, August 2, 2017

Voice control V3 (Part 1)

An interesting input device is the ElecHouse Voice Recognition Module V3. It comes with a microphone and some pins to solder on the PCB. I ordered my "1set Speed Recognition, Voice Recognition Module V3" module on Aliexpress (between 17 and 18 euro 2017).
Voice Recognizer V3 & Arduino Uno
The question is what can this module do for your projects and how can you use it? The answer is simple: it  can recognize your voice and output a signal depending on the word or short phrase that you have learned the module. The good news is that (according to the spec) you can train this relative cheap module to recognize 80 words or phrases. These words or phrases are stored in memory on the module. The bad news is the module can only recognize 7 different phrases at the same time. And you also need to train the system first with all your phrases.
You can create a system that knows what to do with commands like:

"James light on"
"James light off"
"James light color white"
"James light color green"
"James light color blue"
"James light color yellow"

"James light dim 25"
"James light dim 50"
"James light dim 75"
"James light dim 100"

"James TV off"
"James TV on"
"James TV channel next"
"James TV channel prev"
"James TV channel one"

"James Radio on"
"James Radio off"

And yes, this are much more than 7 phrases! You can do this using a menu structure!

Teach the system all the separate words ("James", "light", "TV" ," Radio" "color" etc.)
Load only the word "James". If the module recognizes "James" load the three words "light" "TV" Radio" if the module recognizes "light", load the words "on" "off" "color" "dim" and build a menu system.
You can get the same (or even better) effect with Amazon Alexa or a Google app on your android. Using this module the voice recognition finds happens inside the module. You do not need internet access and perhaps even more important the privacy: The audio is not transmitted to the internet.

A small disadvantage is that you need to train the module. My first test of the module was with an Ardhuino Uno. The ElecHouse website has a link Arduino library with some examples including a voice training example. Connect GND and VCC (5v) , RXD to Arduino pin 3 and TXD to Arduino pin 2. (If you do not like to use pin 2 and 3 you can use other pins. However you need to make a small change in the software). You only need to connect this four pins on the V3 module (and the included microphone) to a working Arduino to start.

Some info from ElecHouse about the module:
ELECHOUSE Voice Recognition Module is a compact and easy-control speaking recognition board.
This product is a speaker-dependent voice recognition module. It supports up to 80 voice commands in all. Max 7 voice commands could work at the same time. Any sound could be trained as command. Users need to train the module first before let it recognizing any voice command.
This board has 2 controlling ways: Serial Port (full function), General Input Pins (part of function). General Output Pins on the board could generate several kinds of waves while corresponding voice command was recognized.
What's new?
We already have Voice Recognition module V2. It supports 15 commands in all and only 5 commands at the same time.
On V2, voice commands are separated into 3 groups while you training it. And only one group (5 commands) could to be imported into Recognizer. It means only 5 voice commands are effective at the same time.
On V3, voice commands are stored in one large group like a library. Any 7 voice commands in the library could be imported into recognizer. It means 7 commands are effective at the same time.
Voltage: 4.5-5.5V
Current: <40mA
Digital Interface: 5V TTL level for UART interface and GPIO
Analog Interface: 3.5mm mono-channel microphone connector + microphone pin interface
Size: 31mm x 50mm
Recognition accuracy: 99% (under ideal environment)
Support maximum 80 voice commands, with each voice 1500ms (one or two words speaking)
Maximum 7 voice commands effective at same time
library is supplied
Easy Control: UART/GPIO

On internet is a lot more info about this and similar modules. Here is link to a YouTube video : S134 - Voice Recognition Module V3