Speech recognition tutorial

Step 9. Additional information on getting the best out of Speech Recognition.

The following, is an answer I gave to forum member asking questions about speech recognition which you may find useful.

There are some important points for successful speech recognition, not just with EZ-Builder, but in general use. These are...

Type of S/R microphones

Using a good quality microphone, preferably one designed for speech recognition, such as wired headset or Bluetooth microphones, which in your case would not be practical. (Forum member was thinking of an onboard microphone).

Software

Windows speech recognition software needs training, a LOT of training to get any decent results.

Quote:

I'm interested in having a microphone within the robot itself so I, and others can communicate with it away from my computer

Another thing to remember is this software really only recognizes the voice of the person who trained it. For it to recognize other users, you would need to create a new voice profile for these other users to get more accurate results.

Using the speech recognition control in EZ Builder will yield better results than say using the Pandorabot control, as it is only listen for a particular set of words or phrase you have added in to the "Speak Phrase" list, where as the Pandorabot control is listening to anything being said and try's to match it with its library.

Something that would help with distant recognition accuracy is to use something better than Windows, which would be something like Dragon Natural Speaking software, but unfortunately it cannot be used with EZ Builder due to the expense of the DNS SDK.

EDIT:

There are new controls and plugins now available in ARC such as Bing and Google Speech Recognition which work really well and do not require computer voice recognition training.

Distant Speech Microphones

Quote:

is it feasible as to the computer being able to discern what is being spoken due to the fact that you are not speaking directly into a microphone

This is based on the microphone used, and not so much the computer listening. Microphones designed for distant recognition is still a relatively new technology, and distant speech microphones (DSR microphones) are few and far between at the moment, especially wireless ones. One such wired microphone that is used for VoIP conference calling is the Voice Tracker 1 that connects to a computer using a microphone socket, and the Voice Tracker 2 that connects via USB or mic socket, both of which use beam forming technology to hear voices from across a room which is geared towards speech recognition as well. I haven't tried the voice tracker mics yet as there are a bit out of my price range for something to try, but the reviews that are around are generally pretty good.

Another type of distance speech rec microphone, are digital array mics such as the DA-350 and the CrispMic that connects via USB which I have used on a computer in the same room as the robot, with fairly good results, and are small enough to put inside of a robot with an on-board PC or using an external PC with the mic in the same room as the robot.

Quote:

as respects what hardware was used and how it is connected to their computer, i.e WiFi Bluetooth or what?

Below are a couple more links to mics that other members have used with speech recognition..

X tag wireless

Snowball USB

Koss CS-100 headset Microphone jack

Here is a discussion I started a while back asking about speech recognition microphones..,

www.ez-robot.com/Community/Forum/Thread?threadId=5982

And another discussion from @Steve Neal..,

www.ez-robot.com/Community/Forum/Thread?threadId=8073

Quote:

Microphone in Robot.

So in a nutshell, there are only very few distant speech recognition microphones available that would work well in a robot, but are pricey and not wireless at the moment (at least I have not come across one yet). If you google DRS (distant speech recognition) you will however find a lot of documentation on the subject. To have what you're asking would a lot of the time require a computer on-board a robot, but solutions such as wireless and Bluetooth microphones are also an option, but not very good at picking up speech from a distance. A microphone array connected to a computer that would be in the same room as the robot is another option (although the mics not in the robot). But for an affordable high accuracy wireless or Bluetooth speech rec mic, it would have to be worn by the user. I had a play about with a pair of Apple Ear-pods that come with an iPhone, plugged in to a laptops mic socket, and believe it or not I got some great results using the speech recognition control with fairly accurate results up to 5 feet away from my mouth in a quiet room. The videos I posted in this EZ Builder games thread used this.

And to finish off, with any hardware used for speech recognition, quality of hardware (normally more expensive) and software training pays off. Here's hoping one day the EZ-B v5 will have an on-board microphone or socket to connect a mic to, not just for recognition, but for streaming any audio. That being said, it must be noted that onboard microphones (microphones installed in/on a robot) can have its own issues. Noise from the robot, (drive motors, servos etc), can interfere with recognition causing phrases not to be heard or cause false positives (robot noises can be interpreted as phrases and the robot would do thinks you don’t want it to)

At the end of the day, I think many of us here are looking for a highly accurate, affordable, easy to set up, and dynamic use (other users speech can be recognized) to do exactly what we are looking for, with the three important factors... accuracy, talking at a distance, and for other people to be understood, not just the user.

Happy building.

[b]Tutorial created on 3rd October 2015

Tutorial edited on 18th March 2018 to add info about new speech recognition controls.


ARC Pro

Upgrade to ARC Pro

ARC Pro is your passport to a world of endless possibilities in robot programming, waiting for you to explore.