0

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

3 Answers 3

3

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.

6
  • 1
    Correction: You don't actually need a cloud-based service. It might take a little while, but Mozilla's Deepspeech (github.com/mozilla/DeepSpeech) is capable of doing it on-device. IIRC Raspberry Pi's are capable enough to do it, but only just. Commented Jul 5, 2019 at 0:02
  • 2
    And how does that relate to doing it on an Arduino?
    – Majenko
    Commented Jul 5, 2019 at 8:14
  • True. Just wanted to point out that it's technically possible to do locally, given the right equipment :P Commented Jul 5, 2019 at 22:25
  • 2
    Maybe if we were on the Pi SE site your comment might be taken a little more seriously. But we're not. Anything can be done if you have the right equipment.
    – Majenko
    Commented Jul 5, 2019 at 23:05
  • The answer to can it be done is inherently yes at some point, making this answer wrong... it's as simple as that. Commented Sep 29, 2020 at 16:56
1

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

3
  • 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
    Commented Jan 24, 2019 at 19:26
  • Also what do i need to know to make frequencies recognition with atmega16
    – Aimless
    Commented Jan 24, 2019 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
    – Hindurable
    Commented Jan 27, 2019 at 15:35
1

Yes it is possible - see here for ESP32 example:

https://github.com/espressif/esp-adf/tree/master/examples/speech_recognition/asr

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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