Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.

Get Started
Asked — Edited

Audio Commands / Microphone In Ez-B

So. I understand that if takes a lot to make a genuine "speech recognition" going, and I have read the nice post: http://www.ez-robot.com/Community/Forum/Thread?threadId=8420 regarding this.
My question is not so much "how do I add speech recognition", but rather "how would I make my robot respond to simple audio commands through it own microphone".

First off, I guess Im wondering if anyone has made their robot able to respond to a general "Yes" / "No" audio command (I guess if it could be taught the difference between "E" and "O" that would be sufficient), and if it would work for "most" voices (not only the programmers voice). Anyone done this or know of a good source for info on this subject?

Secondly, there is the Microphone input / hardware issue.
If Im not needing my robot to understand what Im saying, but just respond to "E" or "O" (or single clapp / double clapp aso), what hardware would you recommend I try to figure out? Is there such a thing as a WiFi / BT microphone that anyone has made EZ-B connect to? Or would it be easier to upgrade EZ-B with an expansion / shield of some sort? Is there any other sensor out there that is cheap and could either be set to monitor frequenzy (audible) to at least make my robot stop if any high pitched / loud sounding noise is registered?

I want to program my robot on my desktop, but would love for it to have half an ear so that it may be controlled by simle audio inputs once out of the desk enviroment, or maybe I could make it stop whatever its doing by screaming NOOOOO to it:)

Thank you all in advance!


Hi caegear, i use an android phone and it works super. Take a loock here.
Thank you DJ Sures! Im so happy this isnt a "learn C+ first"-thing :), and thank you Proteusy: Did you have a link in your reply that got lost?
Any voice commands will require a pc running ARC. If you mount a microphone on your robot, you might pick up interference.
yeah - avoid putting a microphone on the robot. Use an ear piece from the ebay link. The one i have is like $6

User-inserted image
DJ Sures: I assume that mic connects to PC over BT and EZ-B connects to PC by WiFi?

MazeHorizonTech: Its not impossible in my application that I can add a small PC running ARC to my robot (its large), but It would be simpler, more energy efficient and cheaper to add an android-running phone (and a wired out-of-the-way mic if needed). Is the Android phone / mic-solution possible? Would it replace the need for PC running ARC?

// -see below --Proteusy: I suspect you wanted to show me a link explaining some android / mic use? Would that be the same "via PC" solution or would that be a "standalone" connection over WiFi from Android Phone to EZ-B? -- //

I am sorry If I ask dumb questions. I have not had a chance to look at ARC mobile platform yet, but will do so if that could help me add ears to my robot for when its not inside but outside doing its thing...
Proteusy: Thank you!

That means you still have to go through a PC running ARC right? Or do you run EZ-Mobile and give commands to EZ-B without a PC?
The app is caled WO Mic, its an app that you have to install on the phone and on the PC. You can chose to have it work as BT or wifi. On the PC side it is like a regular microfone. I still use EZ- builder on the pc.
A bit of clarification from one of your questions. Although there is a mobile version of ARC that runs on Android, it doesn't support speech recognition, so you will need a PC somewhere, either on the bot or off.

The WO microphone allows you to use an android phone as your microphone for the remote PC. If you mount a PC on the bot, you could just use a wired microphone, but there are a lot of reasons not to do that. Robots can be noisy and can prevent good recognition.

Thank you Alan. I dont need speech recognition per say. Just an audio-responsive robot.

Lets say my robot will be put out in the woods and it will navigate on its own. It will encounter obstacles and react as it is programmed to. What I want is for the audio to register (periodically or live / streaming) so that if my robot registers a given sound (could be "sounds louder than usual", or "Any sound of some Hz/ pitch" or "Any sound equalling beforementioned that also lasts for more than X seconds" ).

In real life, my robot would be "listening" for (at intervalls or all the time) Bird songs. If it hears something that could be a Bird song, It will stop dead in its tracks and start recording / streaming / logging GPS data. After preset value of some sort (time) it will "reboot" / restart its journey through the woods.

If some scary creature (human) should come along and interfere, It would be nice if my robot could detect the presence of vocal / audio from it (maybe stop, record / stream, GPS log again), but more importantly relay a pre-recorded message saying something like "Hello humanoid. I am XXX and I am a robot sent from a galaxy far, far away to record Bird Songs ... (bla, bla) My creators have been notified of your precense, and a warparty is on its way right this minute (to GPS coordinate XXXXXXXXXX). Please let me continue my precious mission, or I will self-destruct in 10 - - 9 - - 8 - - ..." aso...

Not speech recognition at all. Just audio in to trigger actions.

I saw another post where someone wanted to rig ADC-ports to do something similar, and Ill look into doing that alongside using the most compact PC-based solution I can find.

Thank you for clarifying. My questions are somewhat influenced by my complete lack of understanding of why not everybody wants audio input on the EZ-B. Interference or not. I can think of hundreds of uses of the EZ-B4 that will never see a servo...

I will probably build a small PC and put inside my robot, and I hereby vote for a poll where users could vote for or against audio in jack on the EZ-B5, and a vote for or against some arduino-ish means of loading code onto EZ-B to let it operate without a PC running ARC;)
The ezb (whatever version) will never operate without a PC or mobile device... It is a a virtual "brick" without connecting to a PC or mobile device... The reason it is so powerful is because of the software that runs on windows or your mobile device... If you don't want a PC on board your robot you will need to be within range of wifi of your robot using a remote PC or mobile device... Plain and simple...

FYI the PC you want to build will have to run a minimum of Windows 7...


and a vote for or against some arduino-ish means of loading code onto EZ-B to let it operate without a PC running ARC

If you want something with as little capability and processing power as an Arduino running your code, no reason to have an EZ-B in between it and your servos and sensors, just get an Arduino and learn to write code for it. If you want the capabilities of ARC, you need a computer, not a microprocessor, to run it. That computer can be an iPhone or Android device (within limits), but it is not going to be a single chip solution for many years.

PCs are getting very small. No reason on anything except a micro-bot not to just put a windows computer on board if that is what you want. There will shortly be an expansion board available for the EZ-B that will allow you to connect with USB instead of WiFi, so metal bodies and such become non issues.

Thank you Richard. I dont mind building a PC into the robot to make it semi-automnous. It will surely make my robot very powerful. Its just a bummer that this makes my robot exactly as stable as Windows is, and will require more power... Wouldnt exactly send a ROVER to Mars relying on Windows stability:)
An onboard compiled application would be very nice. "Save to EZ-B"-option directly from ARC would make Arduino-users come running also. Maybe some time in the future. Maybe that USB-UART-thing (saw someone discussing it on the forum) will open some new doors?

I guess Windows 7 is ok. Should be pretty stable, and I can add a paralell IQ and sensor array of sorts to send GSM GPS data and record / stream audio directly from the PC over GSM /4G.

I cant find Minimum System Requirement for ARC. Anyone tried running it on Celeron N3050 or 2957U or Atom Z3735F? Anyone measured actual power consumption on a basic intel NUC?
I found the MSI Cubi only draws 10W idling and 24W on "full speed". MSI Cubi is i3. If I could run ARC off some lighter processor that would be great.

And thank you all again for your replies to all my rookie questions!:)
Robots are a fascinating subject, but before pulling the cannons out....

I advise you to learn the EZ-*, perform the tutorials, to really understand what you can do with EZB, what you can't do without more skills.

For example navigation, obstacle detection, sound (not speech) recognition are advanced topics which you will need other software skills (programming).

And even being a skilled programmer, some issues are not easy to implement.

Sometimes new ideas arrive while learning the tools, so i would start first with the existent tutorials.
It will definitely run on pretty light weight hardware. A lot of us use the Acer w3 tablet, which is far from a powerhouse. The biggest cpu hog will be voice recognition or analog sensors with fast looping reads.

There is a thread with a bunch of sub $120 low power consumption computers. I have a Voyo that works great with ARC although seems to have some power management issues.

I would not worry about Windows stability. Although it is true that its reputation is well deserved pre Win7, after that any stability issues were typically app related, not actually Windows. If all you run is ARC and maybe a remote control app, you won't have any stability problems. (I would avoid Windows 8.x, but I have found Windows 10 to be very fast and stable).

Thank you Alan! An Iphone-ish computer would be perfect. If that might be a possible processing solution in a couple of years time, I am glad I got onboard now.

As to the powers I need and dont need. I guess for this robot, some simple compiled code would be enough. Maybe in the future Ill need larger processing capabilities, and maybe my robot will be stationairy. Had I been younger, I would probably gobble up both EZ-B and Arduino (and C++) without any issues, but I think I need a "complete" enviroment with "all the possibilities" available in a small and powerful package. Thats why Im trying out EZ-B.

I am sure EZ-B would never have been made if there werent for someones visions. Im not complaining at all. Im envisioning how stuff could be made even better. Smaller. Less power consuming and simpler (cause Im not getting smarter and younger myself : )
@ptp : I agree I will most likely learn a lot from doing the tutorials. There is just so many routes into this and I am trying to find out if I would be able to get where I want using solution A, B, or a mix so that I can plunge in to the correct tutorial.

I think I will take a closer look at the Mobile platform and if that has too many limitations, I will put a small Computer inside my project.

Thank you all for your understanding and great advice. I am sure I will figure out where and how to set up a thread / page showing my project and the progress once the parts arrive from all over the world:)

@thetechguru : I totally agree that win7 is the best option stability wise. I have to do some calculations on how much power Ill need to run my robot for X amount of hours using both a PC-based robot and a Mobile (tablet) version and compare them. It looks like using EZ-B for this robot might be more a proof of concept than an actual working automnous "information-gatherer", but thats no problem really. Half my robot will be a brain-dead machine anyway. Doing, or not doing obstacle climbing / avoidance manouvering. The EZ-B would mostly be "riding along" gathering information.