Is it possible to use only arduino to do voice recognition? or maybe with esp32 no internet.

I found speech recognition chip but that's not what i want I got esp32 esp8266 and arduino board. I would like to know if somebody could do it


No. It's as simple as that. No. Voice Recognition is a very very complex task. To do it fast and well in a "general" way takes a neural network, or a very powerful PC (note: all common ones now use online resources to do all the work).

A voice recognition chip generally is pre-programmed to respond to specific words.


A simple speech (word) recognition can be done. I made one in 1998. Chip was atmega16. Now there are ready to use sound detectors and you just use digital out. https://s.click.aliexpress.com/e/cn6IwDhI From that digital signal you get frequencies, durations and delays. First output results to serial and then get key features, ranges of voice command or a word. Put those boundaries to table and there you have it. It works like a charm with few words but then you have to make indexed database or something to keep it reasonable fast. I had only 8 commands and recognition was about 85% There were only 2 times when it "hear" some other word as a listed word. Language was finnish. I assume that it might lower those false positive occurrencies. As you see this is nothing compared to real systems but can be easily used in non critical solutions. ESP32 can do so much more that I think this might be interesting.. You may also want to look -> https://github.com/MhageGH/esp32_CloudSpeech

  • Marmenmu, Form my understanding. Only you can speak to the microphone right? It use your frequency or tone. or only you that can make the robot understand. – Aimless Jan 24 at 19:26
  • Also what do i need to know to make frequencies recognition with atmega16 – Aimless Jan 24 at 19:45
  • This method cannot handle high noise levels. First use the trimmer that it only activates when command is spoken at close distance of microphone. Then make "capture program" that only passes word parameters to pc. Speak desired word several times and you get key values of frequencies, delays and order of those. You have to just watch one pin and find minimum value how long the frequency alias tone must be same. Write those packets to array and then compare predefined commands that tells order and min and max lengths of frequencies and delays. forum.arduino.cc/index.php?topic=105289.0 – Marmenmu Jan 27 at 15:35

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.