SIT tones using Python or C #

2

Hello,  I'm making an app that detects SIT tones ( link ).  I understand very little about mathematics involved in Fourier transform and signal processing.  What I'm wanting is to understand how I can identify if these patterns occurred on a voip call. To test, I'm using a recorded file.  I've tried to understand some algorithms for frequency identification, but I need to pick it up as described in the wikipedia link. That is: check if there were three touches with those specific frequencies in that specific duration, with that specific interval. All I have achieved so far is to identify the frequency in the audio, but I could not figure out how to see if it occurred during the correct amount of time. (each code has a permuted sequence of the same frequencies)  Does anyone have any idea how I could solve this?

    
asked by anonymous 23.01.2016 / 00:44

2 answers

1

Frequency algorithms will show you the fundamental frequency of the analyzed block, you will need to know which frequencies make up the audio as a whole, I strongly recommend that you understand the math behind #

  • Apply FFT , use fixed size blocks, this size will say the duration of each block of analysis, if a signal is sampled to 8000 Hz then an analysis block of 4096 size will give you 4096/8000 = 512 ms of analysis, may be computationally little efficiently do this for what you need, but this will give you a X-ray of all frequencies contained in the signal within this block, the frequencies you are looking for are sinusoids and in this case you must look within the FFT return if the sine of your interest has amplitude greater than% with% and all other senoids are null or below a certain range of interest.
  • OK I showed you how to do it sort of in brute force, the way really efficient to find its frequencies is to use the algorithm of Goertzel , with it you will be exclusively looking the frequencies of your interest and not within the whole spectrum.

Python can really make things easy, using SciPy / NumPy will help you a lot in analytics.

    
25.01.2016 / 18:47
0

I really never needed to do this but I'd start by looking for an audio library, such as pyaudio .

If it does not have something that already solves your problem, another option is to use SciPy / NumPy to calculate the FFT and analyze the sample frequencies.     

25.01.2016 / 15:38