activity
birdnet_stm32.audio.activity
¶
Activity detection and signal-to-noise sorting for audio chunks.
Provides heuristics to rank audio chunks by signal content and filter out low-activity (silent or noise-only) segments before training or evaluation.
get_s2n_from_spectrogram(spectrogram)
¶
Compute a simple signal-to-noise proxy from a spectrogram (mean / std).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
spectrogram
|
ndarray
|
2D spectrogram array. |
required |
Returns:
| Type | Description |
|---|---|
float
|
SNR-like scalar value. |
Source code in birdnet_stm32/audio/activity.py
get_s2n_from_audio(audio)
¶
Compute a simple signal-to-noise proxy from raw audio (mean / std).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
audio
|
ndarray
|
1D audio signal. |
required |
Returns:
| Type | Description |
|---|---|
float
|
SNR-like scalar value. |
Source code in birdnet_stm32/audio/activity.py
sort_by_s2n(samples, threshold=0.1)
¶
Sort samples by SNR proxy and filter out low-SNR ones. Keeps at least one.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
samples
|
list[ndarray]
|
List of 2D spectrograms or 1D audio arrays. |
required |
threshold
|
float
|
Minimum normalized SNR to keep (in [0, 1]). |
0.1
|
Returns:
| Type | Description |
|---|---|
list[ndarray]
|
Sorted (descending by SNR) and filtered samples. |
Source code in birdnet_stm32/audio/activity.py
get_activity_ratio(x, k=2.0, max_active=0.8, subsample=512)
¶
Compute the fraction of units above median + k * MAD, capped to avoid broadband noise.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
x
|
ndarray
|
1D or 2D array (audio or spectrogram). |
required |
k
|
float
|
MAD multiplier for threshold. |
2.0
|
max_active
|
float
|
Max allowed fraction of active units (returns 0.0 if exceeded). |
0.8
|
subsample
|
int
|
Number of points to use for median/MAD computation. |
512
|
Returns:
| Type | Description |
|---|---|
float
|
Activity ratio in [0, 1]. |
Source code in birdnet_stm32/audio/activity.py
sort_by_activity(samples, threshold=0.25)
¶
Sort samples by activity ratio and filter low-activity ones. Keeps at least one.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
samples
|
list[ndarray]
|
List of 1D or 2D arrays. |
required |
threshold
|
float
|
Minimum activity ratio to keep. |
0.25
|
Returns:
| Type | Description |
|---|---|
list[ndarray]
|
Sorted and filtered samples. |
Source code in birdnet_stm32/audio/activity.py
pick_random_samples(samples, num_samples=1, pick_first=False)
¶
Randomly select one or more samples from a list.
When pick_first=True and num_samples > 1, the first sample is
always included and the remaining are drawn randomly from the rest.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
samples
|
list[ndarray]
|
List of samples (spectrograms or raw audio). |
required |
num_samples
|
int
|
Number of samples to select. |
1
|
pick_first
|
bool
|
If True and num_samples == 1, always return the first sample. If True and num_samples > 1, include the first sample plus random picks. |
False
|
Returns:
| Type | Description |
|---|---|
list[ndarray] | ndarray
|
Selected samples. A list if num_samples > 1, otherwise a single ndarray. |