Reputation: 1
I'm trying to detect tones in an phone audio signal (Busy and Ring to be exact). I used a Goertzel algorithm to detect one frquency in the signal. I dont need to search for multiple frquencies, it's only the one I want or not (1/0) (it's before the call starts)
On another side I wrote a pattern detector (on for 300ms, off for 100ms, on for 300ms, off for 100ms for example). I get a percentage of similitude to my pattern than I decide if I found it or not.
I worked with sample from one tone database web site but it seems to give generated signal : too much clean compared to the real sound you can get from a phone.
My goertzel filter gives something like this in reality: When I run this on one sample I got something like this:
https://i.sstatic.net/rZdgZ.png
How to convert this results so I can get 1 when the frequency is detected and 0 if not.
So far, I tried this:
What do you suggest ?
Thanks
I think I managed to get what I want. In real time:
The signal was found if avg > (max/2)
On the screenshot below the result is in gray
https://i.sstatic.net/L432s.jpg
source code:
https://github.com/nonprenom/tones_detector
Upvotes: 0
Views: 369