Audio Processing Pipeline Overview
The Spectrogram Viewer implements a repeatable audio-processing pipeline designed to make recordings clearer and easier to interpret.
It follows the same general approach as a manual workflow in tools like Audacity, but applies it consistently and automatically.
Each input recording is processed in the following stages:
| # | Summary | Description |
|---|---|---|
| 1 | Detect noise regions | The recording is scanned to find short sections that are likely to contain background noise only (quiet and low in signal-band energy) - the noise detection algorithm is documented in more detail, below |
| 2 | Build a noise profile | These regions are combined into a single sample, representing the background noise in the recording |
| 3 | Reduce noise (spectral subtraction) | The recording is transformed into the frequency domain, and the estimated noise profile is subtracted from each time slice. A small floor is retained to avoid introducing artefacts |
| 4 | High-pass filter | Low-frequency rumble and handling noise are removed, focusing the signal on the frequency range where bat calls occur (after time expansion) |
| 5 | Normalise | The result is scaled to a consistent peak level, making quiet recordings easier to inspect and listen to |
| 6 | Output | The processed audio is written to disk for further inspection or visualisation |
The pipeline is intentionally simple and transparent:
- Repeatable — removes the need for manual selection of noise regions
- Interpretable — each step is easy to understand and adjust
- Non-destructive in spirit — preserves timing and structure of the original signal
- Practical — tuned for real-world field recordings rather than ideal conditions
Tool
Spectrogram Viewer
A tool for exploring bat recordings through spectrograms and pulse-level analysis
The analyses presented in this section were developed using the Spectrogram Viewer, a command-line application designed for examining bat echolocation recordings.
The tool combines waveform and spectrogram visualisation with noise reduction, pulse detection, and behavioural call analysis, allowing recordings to be explored in detail.
Structured outputs, including pulse measurements and JSON analysis files, can be exported for downstream analysis and notebook-based workflows.
The application, example workflows, and instructions on how to run it are provided in the GitHub repository.