How to measure long-term dataset for soundscape AND impulsivity?

I have years of passive acoustic monitoring data collected on several full-bandwidth underwater noise recorders around windfarms. Given the volume of the data, I need to automate the analysis, and am uncertain how to do so in a way that takes all of the following goals into account.

I want to be able to:

• say something about noise levels over time;
• say something about dolphin/porpoise presence over time
• as well as whenever pile-driving noise associated with the construction of offshore wind farms is occurring.

For general soundscape analysis, I plan on processing this data using PAMGuide or PAMGuard).

For dolphin/porpoise presense, I plan on using a click detector in PAMGuard.

For impulsivity measurements (i.e. to measure the sound whenever a brief, intermittent pile-driving sound is happening), I'm uncertain how to proceed. I haven't found an in-built kurtosis measure in either of these softwares, and so am considering running either one twice, for example, each with different time averaging (maybe 1 min for general soundscape, and maybe 1 sec for impuslive sounds).

I'm not convinced this is the most streamlined way to measure the sound. Is there a 3-birds-1-stone solution here? Suggestions appreciated for finding out how to both appropriately measure impulsivity and keep track of overall SPLs in years of acoustic data.

• Do you mean '3-birds-1-stone'? I'm not entirely clear what you are asking here, but it seems that you are asking if there is a way to do this in PAMGuard (since this is your one stone, and the two birds are soundscape & dolphin/porpoise presence?). Please be more specific if you are asking if you can do it all in Pamguard workflow OR if you are looking for one software analysis type (any one!) to do this all, OR if you are looking for something different? Aug 4, 2022 at 15:40
• thanks @Shannon, will clarify Aug 5, 2022 at 14:27
• Are you willing to give up pre-canned SW and use dedicated (Matlab/Python) scrips?
– WMXZ
Aug 7, 2022 at 6:27

2 Answers

PAMGuard does seem appropriate for detecting clicks.

For getting both sound pressure level and "impulsivity", i suggest the scikit-maad Python package: https://scikit-maad.github.io

The spl module has tools to measure sound pressure level and convert it to a decibel scale. But friendly reminder that the number you will obtain will be relative to the gain settings of your acquisition device. If you care about absolute numbers, as you probably should, make sure to calibrate the device with an SPL meter.

The features module has lots of eco-acoustic indices for measuring "impulsivity": https://scikit-maad.github.io/features.html#alpha-acoustic-indices

Farina and Sueur's acoustic complexity index (ACI) and temporal entropy are suitable candidates.

If you're not familiar with Python, an alternative is R's soundecology package: https://cran.r-project.org/web/packages/soundecology/vignettes/intro.html

Your idea of representing "impulsivity" by means of the kurtosis is good, and could be done with few lines of Librosa + NumPy.

You may find MANTA a good option for analyzing noise levels over time: https://www.frontiersin.org/articles/10.3389/fmars.2021.703650/full%20