Speech recognition is commonly used for controlling appliances, toys, tools and computers. It is used in Robotics to control motors according to voice commands.
The heart of the circuit is the HM2007 speech recognition IC. HM2007 is made by HUALON Microelectronics Corporation(Taiwan) .
The IC can recognize 20 words, each word a length of 1.92 seconds.
Speech samples are acquired by a Microphone on board.HM2007 analyzes the analog signal received compares with the data stored in external RAM & finally outputs a corresponding 8 bit Data.This 8 bit data can be directly connected to a port of Microcontroller for further action.
An 8 kB external RAM is needed to store data.As the RAM is volatile , a 3v button battery is used to backup stored data.The 8 bit data is passed through an octal latch IC 74HC573.
To display the command numbers 2 common cathode 7 segment displays are provided.This is driven by a BCD to 7 segment decoder/driver IC CD4511.
The board requires 5v DC supply. A 12v adapter can be used as a power source, as the board has inbuilt 5v regulator with heat sink.
The HM 2007 IC requires initial configuration or training of words, which is performed using a 4 x 3 Matrix Keypad. In the training process user trains the IC by speaking words into the microphone and
assigning a particular value for that word. For example a world “left” can be assigned a value 01.This can then be later connected to a microcontroller for further functions.
Words can be assigned from 01 to 20.
Training Words for Recognition:
Before starting the training process we can erase the previous memory.
Press 99 & then press the CLEAR button.
The display will scroll from 01 to 20 erasing all the memory
To train a word
Press “01” on the keypad.Display will show “01” and the READY LED will turn off.Now press the TRAIN key ( the LED will turn on) & HM2007 goes to training mode, for word one.
Say the target word into the onboard microphone (near LED) clearly. The READY LED should blink momentarily indicating the acceptance of word.
If the LED did not flash, start again by pressing “1” and then “TRAIN” key.
You may continue training new words in the circuit. Press “02” then TRAIN key to train the second word and so on. The circuit will accept and recognize up to 20 words (numbers 01 through 20).
It is not necessary to train all word spaces. If you only require 5 target words that’s all you NEED TO TRAIN.
If the system has to work under noisy environments, background noise may corrupt the original data and leads to malfunctioning.Take care to avoid using this board in Noisy places.
Error codes generally displayed
55 = word too long
66 = word too short
77 = word no match
Let us test the board by connecting to a Motor through a motor driver board L293.This L293 can drive 2 motors at a time.For demo we’re using one part of the IC.
Functioning of L293 can be understood from this post.
EN1 of L293 should be made HIGH and according to logic levels at IN1 & IN2 the motor will rotate to Right or Left or Stop.
HM2007 Outputs an 8 bit Data buffered by 74HC573 IC & available as two 4 bits.
D0 to D3 represent one digit & the second one by D4 to D7
We shall connect
EN1 of L293 TO D4
IN1 of L293 TO D3
IN2 of L293 TO D0
Provide a separate 12v DC power source to L293 board.Do not forget to make common the GND of L293 BOARD and that of HM2007 board.
Check out the table below to see how to achieve a number for a Word.
Here we’ve assigned decimal 11 for RIGHT , 18 for LEFT & 08 for STOP.
To rotate the motor to RIGHT we assign Decimal value 11 .To rotate LEFT a decimal value of 18 is assigned.
To stop the motor decimal 08 is assigned.The calculation of arriving at these values are shown in table above.
Train the HM2007 board by pressing 11 & then TRAIN key for the word RIGHT.
Then press 18 & TRAIN for the word LEFT.
Finally 08 & TRAIN for the word STOP.
Now speak the word RIGHT to see the motor rotate Rightwards, LEFT to notice the motor rotating leftwards & STOP will apply brake to motor.Corresponding Digit will be displayed on the 7 SEGMENT Displays.
VIDEO DEMO :