Asked — Edited

Speech Recognition Disable, Enable Phrase Still Has An Question

I know we discussed this before in this thread: https://synthiam.com/Community/Questions/2264

Forgive me if it's not proper to start a new thread on the same issue but I left that thread thinking everything was OK. Well, I've had time now to test this. I've found that there is still a problem with the Speech Recognition Disable, Enable in the Voice Recognition Panel. However I think I see what's going on:

At the start up of the ARC program this feature works great. When I disable the Voice recognition with a phrase I have listed in the Voice Recognition Panel it stays disabled till I re-enable it with a phrase (just like it should). However if I first use a different voice command I've listed in the panel "and" I've set a timed parameter (like this: MP3TriggerPlayTrack( d0, 38400, 3, 16000), it will screw things up. It seems like the last timed parameter that was set (ie: 16000 in the last example) stays in memory . Then if I ever want to disable the Speech Recognition using the phrase method in the Speech Recognition panel it will only stay disabled for the amount of time that was set by the last timed parameter used.

Hope this makes sence and makes it easier to find and correct,

Thanks, Dave Schulpius


ARC Pro

Upgrade to ARC Pro

Experience the transformation – subscribe to Synthiam ARC Pro and watch your robot evolve into a marvel of innovation and intelligence.

#1  

Don't know why the title of this thread has the word "Question" at the end. It should have been "issue".

Sorry, Dave Schulpius

PRO
Synthiam
#2  

As designed, if you use multiple mp3 trigger commands with the speech recognition pause value set, the timeout value is reset to the last specified value.


MP3TriggerPlayTrack( d0, 38400, 1, 16000)
Sleep(16000)
MP3TriggerPlayTrack( d0, 38400, 2, 32000)
Sleep(32000)
MP3TriggerPlayTrack( d0, 38400, 3, 64000)


MP3TriggerPlayTrack( d0, 38400, 1, 16000)
MP3TriggerPlayTrack( d0, 38400, 2, 32000)
MP3TriggerPlayTrack( d0, 38400, 3, 64000)


MP3TriggerPlayTrack( d0, 38400, 1)
MP3TriggerPlayTrack( d0, 38400, 2)
MP3TriggerPlayTrack( d0, 38400, 3, 64000)


MP3TriggerPlayTrack( d0, 38400, 3, 64000)
MP3TriggerPlayTrack( d0, 38400, 2)
MP3TriggerPlayTrack( d0, 38400, 1)

ALL above example will result in a pause of the speech recognition for 64000 ms. However, only one of the above examples is usable.

#3  

I just tried to test your issue with Sleep(16000) and it passed effortlessly. on off on off with my voice command "FRED enable Speech" "FRED disable speech" no delays! Try it yourself using sleep ...perhaps its an issue with the mp3 trigger?

#4  

I'm not trying to be a smart a** but I sometimes don't quite think I convey my questions well. Just so we're on the same page;

I'm talking about the feature at the top of the Speech Recognition panel, once opened, you see two windows. One for "Disable Speech Recognition" and the other to "Enable Speech Recognition".

What I hear you saying is that when used, the Disable feature will only disable Speech Recognition as long as the last timeout value was set by a different voice command that used a timed pause parameter (if one has been used already)? OK, if that's what happening then it's truly not a disable feature and I understand. Instead of using no value at all I guess the best way would be to use a very high timeout value when using this feature when using the MP3 Trigger command. Something like about 15 minuets of MS. LIke:

"Robot, shut up" -------------> MP3TriggerPlayTrack( d0, 38400, 3, 15000000000000000000) ,or something like that?

At least this would keep it disabled for at least that long. Am I missing something here or a better way to do this?

Thanks, Dave Schulpius

#5  

I've had time to play with the Speech Recognition pause feature. I fully understand what DJ said above that the pause is tied to the last timeout value that was set and will use that unless a new one is used as a parameter in a new statement. This even applies to the main Disable option inside and at the top of the Speech Recognition panel.

My example above only works somewhat. There is a built in limit of ms that can be used. A pop up window that opens says I can only enter up to 60,000 (1 minute I think). However the true max allowed is only 37,500 or around there. Is it possible to bump this up? if so how far?

It would be really nice to have a true speech recognition Disable/ Enable option that is not limited and not tied to the current and very useful parameter method. The current method allows the speech recognition to stop listening while a sound file is playing so the robot wont start talking to himself. A true Disable/ Enable option would allow us to make the robot stop listening till we want him to start. This would be great in noisy places like shows, making videos or parties where we're trying to show off a little and do some explaining. I don't know if these two concepts can even be split in two but it would be nice.

No rush at all looking into this. Put it on your pile of possible future enhancement to be thought about. It's just a small annoyance that has popped up as I've tried to show off my robot and how EZB is bringing him to life.

Thanks, Dave Schulpius

PRO
Synthiam
#6  

First let me clarify a few things so we can see if we're on the same page...

  1. Pause = Disable
  2. Disable = Disable
  3. Saying a phrase "Disable" will Pause
  4. Saying a phrase "Disable" will Disable
  5. Using MP3 Trigger will Pause for specified time, then Unpause
  6. Using MP3 Trigger will Disable for specified time, then Enable

What i'm getting at is "Disable and Pause are identical".

So, I think what you're saying is this....

  1. Speech is Disabled/Paused by a Voice Command

  2. MP3 Trigger plays sound with Disable Value set for 2,000 ms

  3. Speech becomes Enabled/Unpaused by MP3 Trigger

And what you are expecting is the speech should still be disabled because it was disabled before the MP3 Trigger.

Is that correct?

#7  

Really sorry for my lack of proper verbiage. I can see how I've confused this. Maybe what I'm asking is not possible and thanks for your patience. However I'll try again to re-frame my question.

After reading your descriptions above I guess what was asking (not expecting) was if it was possible to have both a "pause" and a "Disable" function.

*A "Pause" function would act as it does now. Being able to set the amount of time the Speech Recognition would not listen and then start again after the stated timeout value.

*A "Disable" function would do just that and "only" listen for one command to re-enable the Speech Recognition.

I didn't think this matter was just connected to the MP3 Trigger. I may be wrong but I thought we could Run "and" Pause the Speech Recognition with or without using the MP3 Trigger control. So, I was thinking globally. Again I may be wrong about that as I haven't run an instance of ARC without using the MP3 Trigger control.

Thanks for putting up with my scattered descriptions, Dave Schulpius

PRO
Synthiam
#8  

Lol it sucks because I really don't understand, sorry.

Is your trouble that the mp3 trigger is speaking a sound which is getting picked as te "enable" or "disable" phrase?

Two options for disable wont do anything more than make it very confusing. Anything can be done with one option "pause", but I need to understand the issue you personally experience. I keep rereading your posts and can't seem to find an issue.

#9  

No real issue. :) I guess I was just asking for a new feature. Sorry I feel I'm wasting your valuable time. Thanks for hanging in there with me though.

I'll try again to describe what's in my addled mind. sick If we cant connect this time, then perhaps it's just me living in a dream world. blush

As it stands now; When you first start ARC you can place a check mark in the little box on the Speech Rrecongnition box and the SR will stay paused as long as you don't use a SR Timeout Value in a command somewhere. This is also the case if you have a command entered in the box inside the SR box at the top and speak that command to pause the SR. As soon as you use a SR Timeout Value in a command somewhere else, that check mark that was placed at start up will uncheck after this new command's timeout value expires. I understand that it's designed that way.

I was hoping there could be a feature added that would override that last SR timeout value (this value may or may not be in memory depending on if one has been used yet). This new command would now halt any Speech Rrecongnition and only listen for one phrase. Once it hears that phrase the program would start listening again.

If I cant get my thoughts across this time, I promise I'll stop. ;)

Thanks again, Dave Schulpius

#10  

@Dave...I think I understand you conflict. The mp3 trigger function will always disable the speech for the specified time, then reenable automatically. Of course to disable after the mp3 track you must say" B9 disable speech" when so desired as in a noisy environment. An alternative to the mp3 trigger is when in a noisy enviroment is to "B9 enable speech followed by B9 play song1 cc(song1script,pauseoff). within the song1script is a Exec(C:/music/Mr Roboto.mp3or(.wav), CC(speech recognition,pauseOn), sleep(180000), cc(speech recognition,pauseOff)if soo desired, or manually "B9 enable speech! OR keyboard control(thanks DJ) letter whatever to pauseon or off Speech........hope that helps...if not please keep asking and I could continue to help find a solution!

PRO
Synthiam
#11  

Okay, I get it :)

When mp3 trigger played with timeout set AND SR pause is set, then don't unpause after timeout.

That easy! Consider it done

#12  

Ever on top of it DJ Sures!

#13  

:P Easy? For you I'm sure it is! Heck, I couldn't even convey my thoughts on it logically. Sorry again for the lame attempt. I guess this revels again what a nub I still am.

Thanks for hanging in there DJ. I'm glad you finally understood my mumblings. So once you add, as you say a " don't unpause after timeout" featuer, will I be able to un pause with a unique command?

Please don't feel you have to do this right away. I'm sure there area other priority's.

irobot58, thanks for chiming in! I think I understand what your saying. I know DJ is now on board but I'm still trying to learn. So... What you are proposing tis hat I keep the SR busy waiting on file playing on the laptop? However will using your "Sleep(180000)" then the "cc(speech recognition,pauseOff)" will only keeps the SR off for 18 seconds till it's re-enabled?

#14  

DAVE have a blessed safe christmas and a happy new year.

#16  

@dshulpius..dont be toooo hard on yourself! we're all in the same bo(a)t:) "What you are proposing is that I keep the SR busy waiting on file playing on the laptop?" yes! and yes to the last question except that 180000 I believe is 1000=1 sec so 180 sec would be 3 mins? ;) just saying! ,my friend dave. @robotmaker I like your use of capitals...in this case! :)

#17  

Ahh, yes, my math was wayyyyy off on that one. 180000 is 3mins. Must have not counted a zero or something.

With that said; when entering any value above 37500 or so will return a Syntax Error saying "is not a valid time to pause the Speech Recognition. Enter a value between 1 and 60000". Something is off right there. The program is only allowing slightly more then half of what the error says it will allow. If my math is correct now it should allow one minute (60000) but is really allowing about 30 seconds of pause time. Most of my sound clips fit into this time frame but a few are just over. No real biggie and not a deal killer at all.

Thanks again for the help, Dave Schulpius

#18  

hmmm I ve got some time and would like to confirm or deny it.....you could have found a bugbot :)

User-inserted image Well I agree after 3.4 secs this error window comes on! DJ has it on his "to do" list .My sound clips of course are typically minites long! I dont have an mp3 trigger yet so I use my other work around using the above [b]exec[b/] example. If you like B9 to play you tunes try the above example dave.