Speech Recognition Disable, Enable Phrase Still Has An Question

 
#1

I know we discussed this before in this thread:
http://www.ez-robot.com/Community/Forum/posts.aspx?threadId=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 EZ Builder 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

#2

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

Sorry, Dave Schulpius

#3

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.

Code:


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



Code:


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



Code:


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



Code:


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.

#4

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?

#5

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

#6

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

#7

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?

#8

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 EZ Builder without using the MP3 Trigger control.

Thanks for putting up with my scattered descriptions,
Dave Schulpius

#9

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.

#10

No real issue. Smile 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 EZ Builder 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. Winky

Thanks again,
Dave Schulpius