Asked — Edited

Voice Recognition Sleep

I have a bunch of (say) fields setup in VR. If someone just happens to say something that is close to one of my say commands JAC will shoot off his mouth. I was wondering if there is a way for me to tell the robot not say anything until I want him to. I have a HAL9000 Home Automated System that I can tell it to go to sleep("Computer Go To Sleep"). It will still listen but will not responded to any commands until I tell it to wake up("Computer Wake Up". Then it will respond to my spoken command.


ARC Pro

Upgrade to ARC Pro

Elevate your robot's capabilities to the next level with Synthiam ARC Pro, unlocking a world of possibilities in robot programming.

United Kingdom
#1  

In the config I believe there are two commands, one for enabled and one for disabled.

#2  

Clap on, clap off:) .....but seriously Rich is correct(as usual:) ) Its easy to turn off using VR...but to reenable it I think you would have to use something else ..like an electret set for a LOUD sound to turn the VR back on....Not sure if you can reenable the VR with a Voice command? something easy enough to try :)

#3  

Yes, you can turn it on and off by voice comand. Open the SR control and look at the top of the box. You'll see the two fields you need. just type the command it will listen for in one to turn it off and in the other put the command it will listen for to turn it back on. There is even a place next to them where you can run a script when the command is heard. You can also pause the SR with a script useing the Pause(). It works great. I use it all the time. Watch one of my B9 videos I have in my project thread and youwill see and hear me useing it.

United Kingdom
#5  

Whatever you want them to be

PRO
New Zealand
#6  

To reduce errors in recognition I suggest you use longer clearer phrases rather than shorter individual words.

"please turn on the Lights" rather than just "Lights"

You can also make some commands into toggles rather than have two separate commands.

Eg. One command saying "Computer lights please" instead of having two separate commands "Turn the lights on" and "Turn the lights off".

Your program would look something like:

#Define Variables $Lights=""

Toggle the lights

if ($Lights="Off" ) $Lights=("On" ) $Phrase=("Lights activated" ) elseif ($Lights="On" ) $Lights=("Off" ) $Phrase=("Lights de-activated" ) endif cc("Speech Recognition", PauseMS, 3000) Say ("$Phrase" )

Notice I also pause the recognition while speaking...seems to reduce errors. I sometimes also use saywait("Lights de-activated") to prevent anything else happening until the statement has been spoken.

@Tameion

#7  

@Tameion-So if I understand this correctly, by using the say command for say("computer turn on the lights please") as soon as I say "computer" the system is already processing the VR command. By using the (saywait) command the computer must hear the complete request before it will respond.

#8  

@dschulpius-Great thanks, can you send me a link to the video you are talking about.

United Kingdom
#9  

SayWait will not process the next line of a script or control until it finishes saying the phrase.

i.e.

SayWait("Now I will move servo D1 to 100")
Servo(D1,100)

The servo wont move until after the speech is finished.

Whereas

Say("Now I will move servo D1 to 100")
Servo(D1,100)

The servo will move while the phrase is being said.

And just to clarify, Say/SayWait are commands for the robot to speak, not for the robot to listen. WaitForSpeech is for the robot to listen.

#10  

Sure, here you go: https://synthiam.com/Community/Questions/2263 I'm on vacation on a carabeian island right now and having difcuilty posting so if this didn't cone through properly will someone please correct the link? Thanks Dave

EDIT: OK, I'm at a better computer now so here's a easier link to follow:

synthiam.com/Community/Questions/2263

Take a peek at a few of my vids and you'll see where I tell him to stop listening and start listening. I'll say "Be Quiet Ninny" and "Pay attention my dear friend" to do each. Really comes in handy when he starts reacting to things he shouldn't when me or other people are talking around him.

In addition you can add a SR pause in the SR command it's self. That way he wont react to things he is saying himself. Before DJ added this upgrade my robot would sometimes chatter on and on reacting to different things he would say himself. It would go on forever sometimes till I shut it off. It was kinda spooky. Like he had a split personality and would have conversations with him self. eek

PRO
Synthiam
#11  

Sure Dave, rub it in! :)

Enjoy your well deserved vacation! Next time being me

#12  

@Tymtravler , Please see my edit above. Good luck and have fun.

@DJ , Sorry, didn't mean to seem aloof or snobby. However this should tell you something about your product. While sitting on a white sand beach with blue water I'll spend time reading this forum and thinking about EZB robots. I even plan to work on cleaning up my B9 project this week from the beach chair. Maybe.... Damm, I just messed a little red bikini walk past...... OK, I'm outa here. Time to order a beer and watch the beach. ;)

#13  

@Tymtravler - Thanks for starting this thread. I hope to make use of it soon.

@dschulpius - I'm officially mad at you for 1 day. Enjoy your vacation lucky ducky. ;)