Mic input

Hey guys,

I’m fairly new to the Arduino and I was wondering if you could help me with this question. I need to create a device that gets the user to say something into a mic and it will print out what frequency the user is speaking in. From my understanding, using a mic doesn’t give you a clean frequency, is there any way I can fix that?

You’re right, a mic doesn’t give you a ‘clean’ frequency. It simply outputs a voltage that’s proportional to air pressure.

It is possible to have the Arduino calculate a FFT over a small time window and have it print the dominant (loudest) frequency.

But. Since there is no clean frequency in speech, you will get various ‘random’ frequencies printed out. What do you intend to do with these frequencies?

You should understand that speech means: the amplitude changes continuously, the frequency changes continuously (e.g.: 100 Hz at t=0ms, 120 Hz at t=50 ms) and there are multiple frequencies present at the same time (e.g. not only 100 Hz but also 200 Hz, 300 Hz, etc.). good luck!