Asked — Edited
Resolved Resolved by DJ Sures!

Speech Recognition

Hello, I have literally tried everything in every tutorial on here to get speech recognition to move servos and nothing at all as worked. what could i be doing wrong?


ARC Pro

Upgrade to ARC Pro

Unleash your creativity with the power of easy robot programming using Synthiam ARC Pro

United Kingdom
#17  

Do you have head or earphones for your phone that have an inline mic? These work really well with EZ-bulider voice recognition.

You could/should also try testing your script by simply "clicking" the run button on the script page.

PRO
Synthiam
#18  

Low confidence means it will not run, and that's what we've been helping you with:)

Lowering the confidence less than 77 is not a fix. That low of a confidence value cannot be fixed by lowering the minimum confidence requirement. Follow the tutorial on training the speech recognition for Windows - and if that doesn't solve it, a new microphone would be needed.

#19  

The Problem was the MIC the whole time,

Thanks for the input everyone

#20  

Run through the training with the new mic if you want it to work well.

Believe me, I have spent a lot of time with various mics and with multiple speech recognition services.

In any event, it was caused by the windows SR service not being able to get a high enough quality result.

#22  

If I may, I would like to take the occasion of this thread to ask a question about how the speech recognition works and see if a certain something could be done.

From the posts, it appears that the speech recognition part actually works with the built in MS speech recognition functions. Does it then use what it thinks it recognizes being said and compare that with what is entered into the various boxes in the SR Control until it finds a match (or not)?

If that is so, does it actually recognize anything else that is said, but simply ignores any other words spoken since they don't show up in the list? Or don't show up in the right order, whatever?

Would it be possible to provide a variable related to the SR Control with a string with all the words it recognizes (or thinks it recognizes) in a given input sentence? Regardless if they matched one of the entries in the SR Control.

For example if the user said "Turn around robot" but there is no entry in the SR Control for the phrase "Turn around robot". Would it still recognize the words "turn", and "around". and "robot" simply because they are valid English words? And, if so, could they be returned to the system in a string?

#23  

This uses dictionary based SR and not dictation based SR. Dictionary based is more accurate because it only looks for the specific words. It would be worth looking this up to see why and how it works.

To use dictation based SR, you would then have to use speech classification and categorization to identify the meaning of what is said. This is a much more indepth process and what makes EZ-AI work. Watson, OK Google, Amazon and SIRI all work this way. It is a completely different thing. recognizing what is said and converting it to text is one thing. Understanding what to do or how to handle what is said is a completely different thing.

Dictionary based SR really doesn't require this because only certain things can be said in specific order. The meaning is known because the phrases are setup by the user. In dictation SR, anything can be said in any order. This is what requires the classification and meaning extraction to take place.

Dictionary based SR is what was used on automated phone attendant systems. Dictation SR has just become decent in the past 5 or so years.

#24  

@CochranRobotics

Thank you for your response. Perhaps I wasn't clear in my previous post. I don't care if it understands the meaning of the words or the phrases, just that it recognize the words spoken and they be returned in a variable. I'm not looking for the routine to respond to what I say, just that it returns whatever words it recognized me as saying.

After all, you can put any valid word you want in the SR Control and have it recognized. It has to recognize the word when it is spoken from what has been typed into a given box in the SR Control. It doesn't compare a sample of you speaking the word. It has to know when you say the word simply from it being typed in. Therefore, the routine which looks for certain words and then compares those words to the entries in the SR Control has to know what the word is supposed to sound like. Since it can be any word. it must have a great many words in it's "vocabulary" that it can recognize and use to compare against the SR entries.

For example, if you say the word "around" it probably recognizes that word as a valid English word and will compare it against the entries in the SR Control as input by the user. If it's not there, it forgets it. Deletes it, whatever. But, at some point the underlying routine must have recognized it as a word, (and not just some random noise) and did something to decide whether to use it or not. And so it would be with other spoken words, regardless if they are in the user entries.

What I would like to see is for the underlying routine to remember all recognized words, regardless of whether they are in the entries in the SR Control, and return them in a variable as part of it's routine. I could then use those words in my own scripts and derive meaning from them myself.