# How to label sound events in noisy .wav files

I'm trying to find a way of automatically identifying birdsong in phone-recorded sound files (1min long). Currently the algorithm I'm using doesn't label all of the events I want it to. (it is designed for non noisy audio files).

I don't have much experience in DSP. I'm hoping that upon looking at my wave-forms someone may have an idea of how to pick out these 'birdsong events'! I've shown one of the waveforms. The rest can be seen here: imgur.com

Any method would be appreciated!

I've thought about applying a noise reduction algorithm but I suspect this could just interfere with things. Here is a link to the algorithm I'm using in case you're interested: Github/kylemcdonald

The labelled events are the cross hatched ones.

Thanks in advance for taking the time to look at this!

• If you have some labeled data you can try training a classifier. You can use a sliding window of a fixed length and compute a "feature vector" from each segment. One obvious feature to use is the "signal energy" eg. average value of the samples. You can try other spectral features that librosa computes, like spectral centroid. I can try playing around if you can upload some raw data. – Atul Ingle Nov 2 '17 at 2:14
• Hi Atul we intend to use machine learning later on when we've collected a lot of data but the problem is we don't have enough yet. This is intended as the first step to 'analysing birdsong' just to get a measure of how noisy they are. Plus we expect applying a classifier will be a lot more complicated than just finding these 'sound events' through an algorithm. If you think applying a classifier would be more simple or even if we don't need much data, please say!(I have more experience in ML than creating this sort of algorithm so would actually like an excuse to move onto using a classifier) – Finn Maunsell Nov 2 '17 at 2:38
• "Picking out birdsong events" sounds like a classification problem to me. Of course, you can use concepts from DSP to engineer features, but other than that, I don't see how you can use DSP to segment them. – Atul Ingle Nov 2 '17 at 3:44
• Good to know. You have made me think that it could be made into an easier classification problem than I expected, Thanks. – Finn Maunsell Nov 2 '17 at 3:51
• I'm converting my comments above to an answer. I will delete the comments in a couple of days. – Atul Ingle Nov 2 '17 at 16:33

If you have some labeled data you can try training a classifier. You can use a sliding window of a fixed length and compute a "feature vector" from each segment. One obvious feature to use is the signal energy eg. average value of the samples. You can also try other spectral features that librosa computes, like spectral centroid.