Basic tutorial of how to setup a voice recognition module with the Raspberry Pi. (works offline)
PARTS:
RPI 3 – https://goo.gl/CdVNoH
4 Amp Power Adapter – https://goo.gl/js4Uc7
16GB Micro SD – https://goo.gl/FDqZal
Voice Recognition Kit: https://goo.gl/TgtFk5
(ALT) Voice Recognition Kit: https://goo.gl/HdgVA2
SCHEMATIC:

RECORDING PROCESS:
Follow voice recording process outlined in the videos below:
Follow video at 1:48 – 4:33
or
Follow video at 5:17 – 23:23
Useful Links:
Wiki: http://www.geeetech.com/wiki/index.php/Arduino_Voice_Recognition_Module
User manual: http://www.geeetech.com/wiki/images/6/69/Voice_Recognize_manual.pdf
HTerm: http://www.der-hammer.info/terminal/
AccesPort (Windows): http://www.sudt.com/en/ap/
CoolTerm (MAC): https://www.macupdate.com/app/mac/31352/coolterm
SETUP:
Update Raspberry Pi:
sudo apt-get update
Enable serial interface:
sudo raspi-config
Select “No” on first prompt, and “Yes” on second
Save and Reboot
CODE:
#!/usr/bin/env python3
import time
import serial
# voice command functions
def empty():
pass
def one():
print('17')
def two():
print('18')
def three():
print('19')
def four():
print('20')
def five():
print('21')
if __name__ == '__main__':
# integers mapped to voice command functions
commands = {0:empty, 17:one, 18:two, 19:three, 20:four, 21:five}
# serial settings
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
ser.flushInput()
# run twice to make sure it's in the correct mode
for i in range(2):
ser.write(serial.to_bytes([0xAA])) # set speech module to waiting state
time.sleep(0.5)
ser.write(serial.to_bytes([0x21])) # import group 1 and await voice input
time.sleep(0.5)
print('init complete')
try:
while True:
data_byte = ser.read() # read serial data (one byte)
int_val = int.from_bytes(data_byte, byteorder='big') # convert to integer
print(int_val)
commands[int_val]() # call voice command function
except KeyboardInterrupt:
print('Exiting Script')