Sound Recognition (Frequency Detection)

I'm looking to identify a few alarming sounds such as car horns, door bells using Arduino.
I've thought of using a band pass filter for comparing frequencies but have not been able to identify the frequency of my input sound. The main dilemma I'm facing is to whether store it in EEPROM or in Flash and further how to identify the frequency.
Please Help.

The main dilemma I'm facing is to whether store it in EEPROM or in Flash and further how to identify the frequency.

The main dilemma you have is that you can't do this task simply, and doing it in a complex way will often not work.

Basically you have to split up the noise into a number of different parameters, like zero crossing timing, amplitude peaks, frequency spectrum and so on. Then these parameters are takes at regular short intervals over the course of the sound. These parameters are then stored for each of the noises you want to identify.

Then when you record the unknown noise you do a fuzzy correlation and find out which one of your stored set of parameters gives the closest match to the incoming sound. This will then give a list of probabilities that you have received that sound.

The results are not very good with their being a probability of a false positive or negative in the detection of the sound.

In short forget it.

You can use the FFT or FHT to identify all the frequencies in a sound sample (up to a limit defined by the sampling rate), but a given noise like a car horn contains many significant frequencies, not just one.