io
birdnet_stm32.audio.io
¶
Audio file loading, resampling, chunking, and saving.
This module handles all I/O operations for audio files: loading with soundfile, resampling via scipy, splitting into fixed-length chunks, and writing WAV files.
fast_resample(y, sr_in, sr_out)
¶
Resample audio using scipy.signal.resample_poly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y
|
ndarray
|
1D float32 audio signal. |
required |
sr_in
|
int
|
Original sample rate (Hz). |
required |
sr_out
|
int
|
Target sample rate (Hz). |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Resampled audio as float32. |
Source code in birdnet_stm32/audio/io.py
load_audio_file(path, sample_rate=24000, max_duration=30, chunk_duration=3.0, chunk_overlap=0.0, random_offset=False)
¶
Load an audio file, resample, normalize, and split into fixed-length chunks.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
Path to the audio file on disk. |
required |
sample_rate
|
int
|
Target sampling rate (Hz). |
24000
|
max_duration
|
int
|
Maximum duration to load (seconds). |
30
|
chunk_duration
|
float
|
Duration of each chunk (seconds). |
3.0
|
chunk_overlap
|
float
|
Overlap between chunks (seconds, 0 <= overlap < chunk_duration). |
0.0
|
random_offset
|
bool
|
Whether to start reading at a random offset. |
False
|
Returns:
| Type | Description |
|---|---|
ndarray
|
Array of shape (num_chunks, chunk_size) with float32 audio chunks. |
ndarray
|
Returns empty list on error. |
Source code in birdnet_stm32/audio/io.py
save_wav(audio, path, sample_rate=24000)
¶
Save an audio signal to a WAV file.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
audio
|
ndarray
|
1D audio array (mono). |
required |
path
|
str
|
Output file path (.wav). |
required |
sample_rate
|
int
|
Sampling rate (Hz). |
24000
|