I'm working on an alarm recognition program in MATLAB in which multiple reference audio samples of different alarms would be recorded. Afterwards, the program would sample every so often and compare this sample to the previous references to see which match. I don't know what the alarm recordings would be, but I'm assuming that these repeat after a period. For the comparison method, I've used cross-correlation in the frequency domain and it seems to work fine.
I've also looked at Shazam's fingerprinting algorithm (uses the peaks of the signal's spectrogram as the fingerprint) but I'm not sure if I should use it or not. I don't have much experience in signal processing and it's a complex algorithm for me, and some of the advantages it offers I don't find that important. It can compute the correlation between a large number of signals in a very short space of time (I'm not expecting a large amount of references) and it can carry out the comparison using a short amount of recording time, which I guess would be useful.
What I'd like to know is what method(s) you would recommend.