College project - Voice Recognition lighting

I wonder if anyone out there would be kind enough to assist?

As brief as I can be I have a college project where I am automating a lighting system using an Arduino UNO with, among other controls, Voice Recognition. I found an SparkFun Electret Microphone Breakout and some bitvoice software that I thought was the answer to my problems, one being any decent VR software is expensive, my whole project has to be made for £20 or less.

I found a project on instructables using the above with the library to download, unfortunately in my excitement I didn't read any of the comments or feed back. It would appear the above only works by being permanently connected to a PC, this is obviously not what I need for a home lighting system that is meant to make life easy. The bitvoice can only be downloaded to one PC and it has to be using windows. I have an Imac at home and cannot download to College computers?

There is a wifi version of the above but uses additional components and software that is way outside my budget.

I am behind the curve with this kind of stuff, as I guess is evident from my request, but having spent what spare time I have between college and working all my research throws up expensive VR shields and software.

Perhaps if anyone has any spare time or suggestions they would be kind enough to assist and point me in the right direction, it would be hugely appreciated!!!

Thank you and have a great day.

Andy

You appear to have no idea what is involved in voice recognition. Perhaps that is the first thing you should study. Then, perhaps, you'd have an idea why there is more hardware involved - either a PC or a VR shield. And, you'd understand why the shields are not dirt cheap.

The short answer is you can't get there from here.

As Paul says, VR is not cheap. About the best you'll probably do is the EasyVR shield from SparkFun, at US$50.
In this world, you get what you pay for, and for <£20 you won't get voice recognition unfortunately.

Try Googling 'Goertzel-based speech "recognizer"'.

There are some microcontroller based projects. I'm not aware of any which work great but I think it's possible for a microcontroller to perform some basic speech recognition.

I personally like the EasyVR modules.

Then you've had better luck with them than I. All I've gotten out of them is poorer. 5% success with recognition is useless, and that's all I've gotten. Someone here have me some ideas to improve ie by how far the Mic was, and the length of the phrase, but I never had a chance to try that...

DrAzzy:
Then you've had better luck with them than I. All I've gotten out of them is poorer. 5% success with recognition is useless, and that's all I've gotten. Someone here have me some ideas to improve ie by how far the Mic was, and the length of the phrase, but I never had a chance to try that...

Are you referring to the EasyVR modules?

I don't think I ever used a "phrase", just single words. I thought the built in word sets worked well and the speaker dependent words were also okay.

So far, I've used the EasyVR with a remote control device. So I spoke the commands relatively close to the mic and microcontroller used in the remote would transmit an appropriate command to the robot.

I suppose I should have mentioned I haven't tried using the EasyVR with the mic far away. When there wasn't any noise, the single word commands were interpreted with almost 100% accuracy (high 90%).

I have an EasyVR shield, plugged onto an UNO, used as remote control with a small RF transmitter.
The build-in word sets have proven to be useless, but it comes with free software to load about 32 custom/trained commands.
I have trained it for ~3meters distance, and that works well (90+% recognition, no false commands).
It currently controls about 20x 12watt downlights. Groups, dimming, colour, etc.
Leo..

How about "whistle detection". I used an electret mic similar to what you have, put it through a comparator to make a square wave, and fed it to an interrupt pin. It's not hard to count the pulses until you've accumulated a fixed number, then see how long it took, and compute a frequency. I can successfully discriminate between at least four frequencies I use these to control on and off of a string of neopixels, and changes from one flash pattern to another.

If you use whistled frequencies above the usual ambient noise level, it rarely false alarms.

NGUAce:
I wonder if anyone out there would be kind enough to assist?

As brief as I can be I have a college project where I am automating a lighting system using an Arduino UNO with, among other controls, Voice Recognition. I found an SparkFun Electret Microphone...

VR on an Arduino??? You are going to need more powerful hardware.

The best starting place for VR is CMU's "Sphinx". It is near the state of the art and is available for free. They also have "Pocket Sphinx" that is for embedded systems and runs on lower-end hardware. It's all free and open source and there is LOTS of documentation and forums with people who will help, if you show that you've at least read what's on-line.

The "trick" to getting VR to run on low-end hardware is to define a VERY small language of commands (words and grammar) that is easy to recognize. no sound a-like words and a grammar that tightly constrains the set of possible words at each point in time.

Start here: CMUSphinx Documentation – CMUSphinx Open Source Speech Recognition

One thing to remember is that any VR system that depends only on sound is doomed to fail. Even humans are bad at this. We need grammar and context to help us figure out what word is being said. Read most of the stuff on the above web page.

The Arduino is not a good platform for this. You want basically anything that runs Linux. This can be some $12 ARM based SBC like the TI "Launchpad" or Raspberry Pi.

OldSteve:
As Paul says, VR is not cheap. About the best you'll probably do is the EasyVR shield from SparkFun, at US$50.
In this world, you get what you pay for, and for <£20 you won't get voice recognition unfortunately.

It can be nearly free. No need to spend money. Look under desks and on closets and dumpsters and you might find an old PC or even a very old notebook computer. Then install Linux and then CMU's speech software.

One more cheap way to do VR. Use Google Speech API. Basically you collect the audio and then send the data to Google and then you get back the text. The VR is done on a Google server. You must jump through a few hoops to use this. You need to register with Google and get a "key" but it's free and you get to use their very powerful hardware.

chrisalbertson:
It can be nearly free. No need to spend money. Look under desks and on closets and dumpsters and you might find an old PC or even a very old notebook computer. Then install Linux and then CMU's speech software.

You seem to have decided to ignore a key phrase: "using an Arduino UNO"

We all know there are many ways to do it on other platforms, but our answers were specifically addressing doing it on an Arduino. Don't forget, this is an Arduino forum, not one for Raspberry Pi or PC running Linux.

And it can be done on an Arduino, despite your claim in your previous post, but it does cost money - using 'EasyVR' as mentioned.

PaulS:
You appear to have no idea what is involved in voice recognition. Perhaps that is the first thing you should study. Then, perhaps, you'd have an idea why there is more hardware involved - either a PC or a VR shield. And, you'd understand why the shields are not dirt cheap.

The short answer is you can't get there from here.

Blunt and to the point, thank you.

chrisalbertson:
It can be nearly free. No need to spend money. Look under desks and on closets and dumpsters and you might find an old PC or even a very old notebook computer. Then install Linux and then CMU's speech software.

One more cheap way to do VR. Use Google Speech API. Basically you collect the audio and then send the data to Google and then you get back the text. The VR is done on a Google server. You must jump through a few hoops to use this. You need to register with Google and get a "key" but it's free and you get to use their very powerful hardware.

Thank you for all your information and taking the time to put some options on here for me. The Google Speech API is very interesting thank you, if I ever get a spare minute I will also check out Sphinx as a possible last resort if I cannot get the Arduino route to work.

Thanks again and have a great day.

uSpeech library
The uSpeech library provides an interface for voice recognition using the Arduino. It currently produces phonemes, often the library will produce junk phonemes. Please bear with it for the time being. A noise removal function is underway.

Minimum Requirements
The library is quite intensive on the processor. Each sample collection takes about 3.2 milliseconds so pay close attention to the time. The library has been tested on the Arduino Uno (ATMega32). Each signal object uses up 160bytes. No real time scheduler should be used with this.

BillHo:

µSpeech

Thank you for the info it is very much appreciated.

Have a great day.