maad.features.acoustic_complexity_index

maad.features.acoustic_complexity_index(Sxx)[source]

Compute the Acoustic Complexity Index (ACI) from a spectrogram [1].

Parameters:
Sxxndarray of floats

2d : Spectrogram (i.e matrix of spectrum)

Returns:
ACI_xx: 2d ndarray of scalars

Acoustic Complexity Index of the spectrogram

ACI_per_bin: 1d ndarray of scalars

ACI value for each frequency bin sum(ACI_xx,axis=1)

ACI_sum: scalar

Sum of ACI value per frequency bin (Common definition) sum(ACI_per_bin)

Notes

ACI depends on the duration of the spectrogram as the derivation of the signal is normalized by the sum of the signal. Thus, if the background noise is high due to high acoustic activity the normalization by the sum of the signal reduced ACI. So ACI is low when there is no acoustic activity or high acoustic activity with continuous background noise. ACI is high only when acoustic activity is medium, with sounds well above the background noise.

References

[1]

Pieretti N, Farina A, Morri FD (2011) A new methodology to infer the singing activity of an avian community: the Acoustic Complexity Index (ACI). Ecological Indicators, 11, 868-873. DOI: 10.1016/j.ecolind.2010.11.005

Examples

>>> import maad
>>> s, fs = maad.sound.load('../data/cold_forest_daylight.wav')
>>> Sxx, tn, fn, ext = maad.sound.spectrogram (s, fs, mode='amplitude')  
>>> _, _ , ACI  = maad.features.acoustic_complexity_index(Sxx)
>>> print('ACI : %2.0f ' %ACI) 
ACI : 306