Hi all i’m new to the forum… I’m currently doing a project on speech recognition and I’m in dire need of some help. The aim of my project is to control (open) a security lock via a 1 word voice command…
MAIN PROBLEM: Is there a way or source code for storing a voice recording on the Arduino?

If there is actually a way my next step is to perform a fast fourier transform on that data transforming it from a time(finite) to a frequency domain and hopefully saving it as some sort of data file for later use…

Thanx in advance guys

Unfortunately, there is a big difference in scale between a microcontroller and a general-purpose computing device.

Storing one second of 8bit monophonic 8KHz audio (radio quality) would take 8x the RAM in the Arduino. There is a companion board called the Adafruit Wave Shield which lets you store such sound samples as WAV files on a plain SD media card, and pipe it out to an audio jack without any processing.

Doing a fast-fourier transform on sound data ON THE BOARD seems unlikely, both for speed and capacity reasons.

Thanks for the quick respose… do you think if i increase the memory on the Arduino it would help…or is the project totally not feasible with the arduino… Since the arduino is programmed in C, i wanted to implement C-coded FFt on the saved signal (4k signal)…if it were possible…
my project is due pretty soon and i’m caught between a rock and a hard place with this one… If you have any suggestions at all it would be greatly appreciated…

PS: i wanted FFt a sound file store it (the reference sample) and then compare it to an incoming sound file (say from a mic to the arduino) and use the comparison (correlation result) of the 2 files as my success or failure for my output…
Since the arduino was programmed in C i was hoping to use it to achieve this goal…
Can the adafruit along with the arduino board store a signal from a mic …to be used in the c codes of the program?


It is not possible to increase the amount of RAM on an Arduino board.

You are stuck with the 1KB that is there. You can interface to different memory media like SD and USB memory, but they are probably too slow for audio use.

The Ada fruit wave board is as far as i know a playback device only.

To have one sound stored on Arduino and at the same time capture a second sound and compare it to the first one is simply too much for Arduino to handle.

Let’s not blame arduino, let’s blame Atmel :wink:


you should use something like the Fonera 2.0, which has a much more powerful ARM processor, 32MB of ram, dd-wrt linux, serial pins, and USB port. Let us know if you make something with that, cause I’ve heard of fonera+arduino hybrids

my next step is to perform a fast fourier transform on that data transforming it from a time(finite) to a frequency domain

Just a point, this will not be sufficient for you to perform a voice recognition system even if it only for one word. You need sliding window FFTs and parameter extraction and then template matching software. All in all too much for this tiny but plucky processor.

I’m interested in a project like this. I want to make a device that responds to just one single command. This board looks great, but it’s rather pricy when you get the programming board, too.

Has anyone else here toyed with this kind of project before? Is there a less expensive solution?