Sound recognition.

I am looking for general approach for recognition of a short melodic sound (e.g. cellular phone ring). Obviously, income sound should be sampled and then compared to some previously stored sample array. I suppose some mathematical tools mast be applied. Do I have to calculate correlation between recorded and stored sample arrays?

Did someone encountered similar project?

My guess is, you'll need a full blown computer to have the calculation power. But hey, I have been stunned before with projects I've seen.

The problem is that two recordings of the same sound give a totally different set of numbers. So it is not as easy as that. I don't think you can do this on an arduino.

This is a standard electronics thing... http://www.national.com/mpf/LM/LM567C.html#Overview

Think of it as a tone... then you can do the rest of the searches on your own http://www.google.ca/#sclient=psy&hl=en&source=hp&q=tone+decoder&aq=f&aqi=g3g-m2&aql=&oq=&pbx=1&fp=68d09d3a6d7200e5

BA1604 etc...

How many different sounds do you need to distinguish between?

What can you do just looking at frequency and duration?

Give us the source requirement, we might come up with a lateral solution :)

Think of it as a tone.

No it doesn't work like this, it is far more complex than just a sound spectrum.

An old technique that worked quite well for limited speech recognition (32 words or so) was to use several band-pass filters on the input, with comparators, sampled at quite a slow rate. The pattern was compared with templates stored in memory following a training session using the same speaker. Quite good accuracy was obtained. The technique could be updated by using an FFT.

Grumpy_Mike:

Think of it as a tone.

No it doesn't work like this, it is far more complex than just a sound spectrum.

Really? Only one recognition circuit is allowed? :~

I think it would be up to the OP to decide, and the original description was pretty flaky. ...and how many descriptions have been modified to "that wasn't what I meant. I have to be able tho recognize the Berlin Philharmonic playing the opening bars of Beethoven's Fifth... or perhaps -- I was thinking of a dog whistle -- all these ideas are way too complicated..."

rotflmao!

The OP is not participating anyway -- so this is a waste of time regardless. Maybe they found a dog whistle circuit.

Si: How many different sounds do you need to distinguish between?

What can you do just looking at frequency and duration?

Give us the source requirement, we might come up with a lateral solution :)

Let say - recognition of most used cellular phone rings?

[quote author=Leon Heller link=topic=56260.msg403730#msg403730 date=1300891497] An old technique that worked quite well for limited speech recognition (32 words or so) was to use several band-pass filters on the input, with comparators, sampled at quite a slow rate. The pattern was compared with templates stored in memory following a training session using the same speaker. Quite good accuracy was obtained. The technique could be updated by using an FFT. [/quote]

Thank you for direction. I will try to find theoretical stuff about this method

WillR: The OP is not participating anyway -- so this is a waste of time regardless. Maybe they found a dog whistle circuit.

Dear WillR,

Sorry for delay in the reply - I didn't got mail notifications about update of the topic. "OP" stands for ...?

I understand this has been done. Here are a few starting points:

"Microcomputer implementable low cost speaker-independent word recognition" http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1172082&tag=1

I have heard of this approach: Detect and save just the zero crossings, and do a correlation: http://www.patents.com/us-4780906.html

...need an Algorithm guy to help with Correlation Code :)

I THINK someone has done this with a PIC a year or so ago but I don't see the reference right now...

I do not believe what you want to do is impossible on Arduino, or a Mega...

KE7GKP: "OP" stands for "original poster" (Baruch). I have to agree with the wet-blanket throwers. Sound recognition, especially acoustically coupled and with variable ambient pickup would be a difficult project even if you had unlimited computing resources. It would be way beyond the capabilities of a little low-power micro-controller like Arduino even if you had a "clean feed" direct connection to the waveform.

Thank you, KE7GKP and all topic participators. I got the answer.