Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited

Script To Activate Bing Speech Recognition

I've got the Bing Speech Recognition working and WOW it's great! I have been trying to come up with a script that will activate it - so I don't have to click on the Start and Stop Recording tab - no luck. Is something like this possible?
Also, can Bing Speech be coupled with the Talk servo Control?


Upgrade to ARC Pro

Synthiam ARC Pro is a cool new tool that will help unleash your creativity with programming robots in just seconds!

The C++ update didn't work, Tried the Visual Studio, All is good. Loaded and running fine. Thanks to all.

I'm currently facing the same problem, you could start Bing when the answer from Pandora was issued. About a Soundservo. But how do you stop Bing? Time would be inappropriate.
You are brilliant...again! Thanks!
Hello DJ Sures,
Now the Bing speech recognition is perfect. And it also works. Many Thanks
The latest update includes an energy calculation for auto recording. This will prevent false positives. The level configuration is different, as it's a decimal value. however, a suggested range to try is provided in the config menu.

I prefer 0.03 on my laptop. Although my other laptop prefers 0.02.

Once again hats off to you good sir!
I've been away for a bit but I have been following the development of the Bing Speech recognition plugin. The way Bing 'hears' what I'm saying is great.
Is there a way for it to use the EZ Robot Speech Recognition instead of the Pandorabots?
My EZ Speech Recognition file is huge and it would be nice to use it rather than having to develop a Pandorabot for the answers to my questions.
Thanks DJ, I've been playing with it but still not luck.
I was thinking that I should be able to use something like;


ControlCommand("Speech Recognition", SetPhrase, $BingSpeech)

but I get an error due to the SetPhrase
to replace;


ControlCommand("PandoraBot", SetPhrase, $BingSpeech)
You can find out about ControlCommand() by clicking on that word. It's highlighted in this response.

All commands that are available for a control are displayed in the Cheat Sheet. If a command, is not displayed, it doesn't exist.

The command SetPhrase does not exist for the Speech Recognition control.

I can add it - because i see what you're attempting to do. However, be aware that the bing speech recognition will recognize any phrase, including a period at the end of the statement, or a question mark. So your existing speech recognition will not work without removing the period or question mark from the $bingspeech variable.

I'll add the SetPhrase for ControlCommand() in the next ARC release.

In the meantime, the IF condition's i'm referring to is coding. For example, this is what my video uses for the script in the bing speech recognition plugin...


if ($BingSpeech = "What do you see?")

ControlCommand("Microsoft Cognitive Vision", Detect)

ELSEif ($BingSpeech = "Hello.")

ControlCommand("Auto Position", AutoPositionAction, "Wave")

ControlCommand("PandoraBot", SetPhrase, $BingSpeech)

ELSEif ($BingSpeech = "Take a seat.")

ControlCommand("Auto Position", AutoPositionAction, "Sit Down")

ELSEif ($BingSpeech = "How am I feeling?")

ControlCommand("Microsoft Cognitive Emotion", Detect)

ELSEif ($BingSpeech = "How do I feel?")

ControlCommand("Microsoft Cognitive Emotion", Detect)

ELSEif ($BingSpeech = "Say hello.")

ControlCommand("Auto Position", AutoPositionAction, "Sit Wave")


ControlCommand("PandoraBot", SetPhrase, $BingSpeech)

Hi DJ, I didn't explain what I was doing very well but I figured you would get it. I knew why the SetPhrase wasn't working. Thanks for the sample of the code it helps a lot. Looking forward to the next update.
Yes. Read about the ControlCommand so you can see what commands are available. You can see for yourself what commands are available for a control.

I prefer the right click method rather than cheat sheet. But it's up to you.
Yep, first thing I did was look at both of thouse methods looking for this new command. Theses options were listed under Speech Rec for both right click and cheat sheet:

User-inserted image

Am I looking in the wrong place?
@Dave... Are you asking this for Bing speech plugin or the built in ARC speech rec? What you posted is for the built in speech rec control...

***EDIT*** never mind I just re-read part of the above thread...
Thanks for stepping in RR. I just now found time to start playing with the Bing SR.

Actually I'm playing with both the EZ Robot SR control and and Bing and trying to find the best way to get result I'm looking for. I'm not useing the Pandorabot control but rather I want to trigger sound files located on several EZB soundboards installed in ARC and other movement scripts I've already written. Kinda like the present SR control does

I really don't know yet what I'm doing but am having some success and learning as I go. I was hoping to trigger scripts I've already written located in EZ's SR control with the Bing SR control. After reading this thread it sounded to me that DJ was going to add a SetPhrase option so this can be done. I may be misunderstanding that this can be done, not writing the script properly or not looking in the right place.

I also want to "wake up" the Bing control so it will start listening and execute a sound file or script. I have succeed in doing this by adding a wake up word in the EZ Robot SR control like you would do with Alexis and adding the following command in it's script section:


ControlCommand("Bing Speech Recognition", StartListening)

This actually works pretty good.

So far here's what I've been able to succeed at:
*Moved my old Speech Rec control out of my present project.
*Installed a new SR control with only a wake word listed with it's script commanding Bing to start listening like mentioned above.
*I've copied a few scripts out of the old SR control and wrote "If" statements with ControlCommand commands pointing to these scripts or just to a sound file on one of my installed EZB sound boards.
*When Bing hears and recognizes a phrase, it stores it in the variable I've got entered in the Bing control ($BingSpeech).
*The "if" statement script I have in Bing control will then run. When it finds the phrase stored in the variable it will execute the ControlCommand below it.

Here's a look at a sample from my script inside the Bing control that runs when Bing detects a phrase:


IF ($BingSpeech = "Do you know where you are?")
ControlCommand("Head Section", ScriptStart, "Radar 1/4 Sweep")
ControlCommand("Soundboard v4", Track_18)
ELSEIF ($BingSpeech = "Tell me a Joke")
ControlCommand("Soundboard v4", Track_19)
ELSEIF ($BingSpeech = "Two steps forward")
ControlCommand("Soundboard v4", Track_20)

To me this seems like above is the way to do what I want done. Is there a better way? At first I thought by having a way for Bing to use my existing SR scripts would be easier but I now I see that I may not be able to do that. Any thoughts?