-1

I am working on a program that takes a 30 minute wav file and analyzes it for various events. I have a bunch of 30 minute wav files of a sporting event and was trying to automate a way of finding the times at which certain events happen.

For example, here are the event that I wish to try to identify: - When a goal or an event occurs, there will be noise and cheering from the crowd. I want to return the times at which these events occur. - Or when a whistle is blown - Also being able to identify complete silence for an extended period of time would be helpful

I have been playing with graphing the FFT of these audio samples and have come to the conclusion that this does not give me the best insight on these events. What would be the best process to go about this?

Any guidance at all would be greatly appreciated.

Thanks

playdoh
  • 1
  • 1
  • 1
  • 1
    Welcome to SO! This type of question feels a bit open-ended, and may not be best suited here. To get better feedback, it helps if you form your question like "Here is some code of things i've tried, but here is where it breaks. How do I fix it?" – slizb Feb 08 '17 at 22:04

1 Answers1

1

hoping the following steps can help you.

  1. Read WAV file:

    Reading *.wav files in Python

    Python Wave byte data

  2. Detect the sound:

    Detect and record a sound with python

    Detect tap with pyaudio from live mic

    Python record audio on detected sound

  3. Determinate the first abnormal point in sound chunk like:

    sample_rate = 44100
    wav_file_duration = 30*60   #in sec.
    first_abnormal_point_index = 20000
    

    then the onset of sound is:

    onset = first_abnormal_point_index/sample_rate * wav_file_duration
    

Or you can also use other python packages to do this, such as Modal or aubio.

Community
  • 1
  • 1
Wei Yang
  • 68
  • 5