1

I have been experimenting with the Raspberry Pi and creating an offline voice recognition bot to recognize the numbers 0 through 9. The software I am using to accomplish this task so far is SOPARE, however I have been less than successful (spotty at best results when trying to recognize numbers, just guesses random variables). Next up is for me to try out Jasper Project, however I don't know if i'll be successful there either. If anyone has any suggestions on what I could use, I would greatly appreciate it.

A few notes on what I am working on (and it's constraints):

  1. It has to be functional without an internet connection.
  2. It has to function with just the RasPi (No other chips that I have to go out and purchase)
  3. Program has to be easily re-programmable, (i.e if I need to add more vocabulary I can train it rather easily)

What would be ideal for me would be a voice recognition software that comes pre-programmed to recognize basic numbers (Or can learn them easily)

I greatly appreciate the help.

Best, -Andrew

1

Question

Rpi offline voice recognition of numbers 0 through 9

No Internet connection, no extra chips

Programmable, eg extend vocabulary

Any suggestions?

Answer

Well, can I assume you already have USB microphone or similar? And since Rpi has not analog to digital, it is impossible to sample and convert voice analog signal.

So I think at least you need some cheap voice input, like the US$2 microphone and power amplifier module below.

And another US$2 for an ADC chip, such as MCP3208 12 bit ADC.

So the ridiculously small budget of 5 dollars is good enough for your ridiculously small vocab voice recognition project.

Microphone module

Rpi USB Sound Card

First, some brainstorming ideas.

  1. Loop a continuous moving average of 100mS to detect start sound trigger signal.

  2. As soon as sound detected, start MCP3208 to sample voice and do ADC, and stored in RAM and also SD card, say for 1 to 2 seconds, or stop as soon as the moving average goes dead.

  3. The sample size for a couple of seconds is small, and you can always take less samples per second. Or do some cheating, small sample when user speak first time, pretend not clear, and heavy sample on user's next try.

  4. Use simple structured, sequential, statistical analysis tools (DIY or googled) to compare and contrast the 10 (0 to 9) trained samples,

  5. Can use Python multiprocessing module to compare input data points with 10 standard templates at the same time, discard hopeless templates as soon as possible.

/ to continue,

References

Recording sound with Rpi and ADC

Using Rpi USB microphone as audio input

Rpi USB sound card recording noise problem

MCP3008 SPI, 10 bit, 200kps Datasheet - MicroChip

How to amplify voice from microphone in real time? - Old Rpi StkEx post

How to make one MCP3008 A/D conversion? - Old Rpi StkEx post

Differences Between 16-Bit and 24-Bit Audio - Wesley Fenlon 2011mar03

MCP3201/04/08 12bit ADC Datasheets - Microchip

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.