Audio Sensor

Hello,

I bought my first Arduino recently and I am working on a project. So, I am trying to make a device that would recognize audio frequencies between 45 Hz and 65,000 Hz and then a speaker that would emit the same frequency. The only problem so far is that I do not know where to buy such audio sensor and the speaker. Can someone please help me? I have already searched every where I can think of.

Thank You

You can't do what you want with one microphone and one speaker. Most inexpensive microphones are limited to roughly 100 Hz - 10 kHz, but one that will respond uniformly over the audio range of 20Hz to 20 kHz will be very expensive. Beyond 20 kHz you need ultrasonic transducers.

Speakers are intended for the audio range only, and to produce sound above 20 kHz again requires an ultrasonic transducer. Most ultrasonic transducers are very limited in their frequency response and many have sharp response peaks at certain frequencies (they are resonant).

Are you trying to make some kind of bat detector?
Depending on the species, they can produce echo locating sounds way up to around 200KHz.

The sensor will be your main problem but I suggest you try those "el-cheapo" 3 terminal mic capsules with the built in FET amp.
Even though the specs claim they only work to around 18KHz or so, in practice they go a lot higher (some as high as 80Khz) with reduced sensitivity which may still be enough for your application.
They are so cheap that getting a few different ones to experiment with is worth it.
An extra preamp with high frequency compensating feedback will help too.

The next problem you will encounter is when trying to sample those frequencies on any sound card, they are simply too high so you will have to use the hetrodyne method to bring the frequencies down to human audible range and that of sound cards.

Just keep in mind that the Arduino is not suited to sound recording, analysis or manipulation.