I have a long recording of a train (here is a small sample) there are a number of clicks as the wheels go over joins in the tracks. I would like to detect the location of these.

Looking at the waveform: enter image description here

There appear to be 8-10 clicks. Some are close together.

I can see that they appear as regions of sustained high amplitude. Is there a filter I could cross-correlate this with that would pick them out or is there another better method?

  • 1
    $\begingroup$ It looks like your recording is clipped (exceeds maximum allowable amplitude during recording). It will be difficult to do anything useful with unless the "click" that you are looking for coincide with the clip pointes $\endgroup$ – Hilmar Feb 27 '13 at 17:21
  • $\begingroup$ Look at them with a spectral view and you should see bright vertical lines for each click $\endgroup$ – endolith Feb 27 '13 at 17:31

Use an onset detector - a classic method is described in Duxbury's paper "A combined phase and amplitude based approach to onset detection for audio segmentation". If you want a ready to use solution, you can use Sonic Visualizer / Sonic annotator, which can export onset positions as a text file.

It works well for your example, with only one false positive - which could be easily discarded by adding an additional threshold on the onset detection detection function (second curve) value.

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.