Hello from Germany,
I have 2 problems when programming scripts and hope someone can help me.
Problem 1: Speech Recognition at Low Confidence, I want that the robot at low Cinfidence says he did not hear me, for that I have written the following script, which unfortunately will cause it always says he did not understand me correctly:Code:
: start
WaitForChange($SpeechConfidence)
$SpeechConfidence < = ( 0.69 )
sayEZBWait("Entschuldigung, ich habe Dich nicht richtig verstanden")
GoTo(start)
Problem 2: I would like to start a script when the robot speaks, this, I wrote the following script but does not work:Code:
:start
$sayEZBWait = "eingabe"
WaitForChange SayEZBWait("text to speech")
if(SayEZBWait = ("true")
$z = 1
ElseIf (SayEZBWait = ("false")
$z = 0
EndIf
if($z = 1)
ControlCommand("Script Manager", ScriptStart, "Start Körpersprache")
ElseIf ($z = 0)
ControlCommand("Script Manager", ScriptStart, "Stop Körpersprache")
endif
Goto (start)
Thanks for your Help
*edited by DJ Sures to put code in proper UBB tags so people can read it.
Asked
— Edited
Alan
that's why the plugin system comes in handy
In Problem 2 I test tonight and give you a return info.
Thanks once.
Problem 2:
@MazeHorizon0-Techno
Thank you for your script. Really it does not work, I have made the following changes:
$z = "Eingabe"
Code:
Now it works, but actually I wanted to have it even easier. I did not want to manually set the variables in all voice instructions.
@WBS00001
Thanks for your help, but I think you have not understood what I want or I interpret your help wrong.
I want to start a script automatically when the robot speaks. Just as in the script of "MazeHorizon0-techno" but before and without entering them manually after each "SayEZBWait" command variable.
Greetings
Sven
Revisit the previous posts of this forum and follow the tutorial.
That's the problem. There is nothing that executes automatically when the robot speaks. The robot can speak one of two ways:
1) Executing a SayEZB() or SayEZBWait() instruction.
2) Playing a selection from a Soundboard
To my knowledge, there is nothing which triggers when either of those things happen. And, in a script, they can only happen when you put in a line of code which will send something to the robot for it to say. There is nothing which monitors when the robot is speaking and can be used to trigger something else at that moment. You have to do that with other coding that you enter yourself. My example was one way to do that.
Actually....
Two ways. if the only sound the EZ-B will be making is speech (ie, not playing MP3s) you can add a "sound servo (EZB Playback)" object to the project. Don't define a servo for it. Than have a script that waits for change in the $Soundv4Value variable, and it will execute whenever that value changes. I use the following script to vary the brightness of an LED when my Roli is speaking or playing music:
Code:
If you will have other sounds, but only want to react to speech, you can similarly add a "talk servo" object. This one doesn't have a default variable you can act on, but if you define the servo as a Virtual servo, and then do a WaitForServoMove (servoPort, [timeout MS]) using the virtual servo port you defined as the servo port, the script will trigger any time the EZ-B speaks.
Alan
I follow the tutorial, but for Problem 2 there is no tutorial.
@ WBS00001
Thanks, now i have understand
@thetechguru
Thats a good idea, i will testing.
Excellent! I had no idea that was the case. Have not had the need for the Sound servo component as yet. Great tricks and seems to be just what is needed in this situation. Thanks so much for the info. Definitely add that to my repertoire.
We need a "Tips and Tricks" section for this sort of good stuff. Things that are not broad enough for a full blown tutorial but really handy nonetheless.
Alan
which sound servo do you use? There are yet no servo function operates at the SayEZB command. It's all the talk Servo, but who has no variable.
i think im to stupid.
Sven
See screen shot. The one I use is circled.
Do you have the latest version of ARC installed? I only ask as there was an issue a while ago which has since been fixed. Link for the sound servo thread below...
http://www.ez-robot.com/Community/Forum/Thread?threadId=8649
$Soundv4Value is ever 0
Alan
Thanks for your help
Sven
I should be able to confirm it tonight or first thing tomorrow.
Alan
@DJ, if you are watching this thread, see my public project "myroli-mkii".
On the second virtual desktop is a sound servo (EZB) object defined as a virtual servo. The $Soundv4Value variable used to change whenever I used either the speech test script or played the song in the Soundboard (EZB) on desktop 1. If you run the Sound LED script while any sound was playing, it would brighten and darken an LED on port D11.
I tested this after you made the fix Steve references above with the misnamed sound servo objects and it worked, so sometime between then and now it has stopped working.
In fact, Sound servo (EZB) does not appear to be working at all. I redefined it from the virtual port to one of the claws, and it does not react to any EZ-B sound.
Talk servo does work correctly.
Alan
But now I have the next problem, it is not possible to give RSS Feeds on the ECB again. The SpeakRSSEZB command does not exist. Have I missed something here?
Greetings from Germany and sorry for my many questions.
Sven