File size: 3,943 Bytes
fad91dd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ec57848
fad91dd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ebded5e
fad91dd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7b03a6b
 
 
 
 
fad91dd
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
---
license: other
license_name: sam-license
license_link: LICENSE
pipeline_tag: audio-to-audio
library_name: pytorch
tags:
  - bioacoustics
  - audio
  - denoising
  - animal-vocalizations
  - knowledge-distillation
---

# CallCleaner

**Lightweight bioacoustic denoising from an audio foundation model.**

CallCleaner removes background noise (wind, rain, vehicles, other animals) from recordings of
animal vocalizations. It is a 19M-parameter waveform-to-waveform model that needs no detector,
text prompt or GPU, and runs about 90× faster than real time on a laptop CPU.

[Project page](https://callcleaner.github.io) · [Paper (arXiv)](https://arxiv.org/abs/2611.11491) · [Code (GitHub)](https://github.com/morrisalp/CallCleaner)

## How it was made

The source-separation foundation model **SAM-Audio** (`facebook/sam-audio-small`), prompted with
"animal sound" and with time spans from a simple animal voice-activity detector, removes more noise
from animal calls than dedicated bioacoustic denoisers, but it is slow and inherits detector errors.
CallCleaner distills it into a small model:

- **Architecture:** the Demucs denoiser from [Biodenoising](https://github.com/earthspecies/biodenoising)
  (`biodenoising16k_dns48`, 16 kHz, mono), initialized from Biodenoising's weights.
- **Teacher:** SAM-Audio with VAD-span prompts. Its target stream is the pseudo-label; its residual
  stream is a noise estimate. Half of each batch is remixed (another segment's residual added to a
  pseudo-label), as in bootstrapped remixing.
- **Data:** 4 s segments (1.8 h) from the public corpora Biodenoising was trained on (DCASE few-shot
  bioacoustics, Orchive and five bird corpora), none shared with its benchmark.
- **Training:** 2,000 steps.

On Biodenoising's benchmark (47 clips × 4 SNRs), CallCleaner leaves **11 dB less noise around the call**
than Biodenoising, the leading neural bioacoustic denoiser with public weights, and among fast,
CPU-capable systems it pushes the Pareto frontier of noise removal vs. call fidelity. See the paper
for full results.

## Usage

```bash
pip install biodenoising safetensors huggingface_hub librosa soundfile
```

```python
import librosa, soundfile as sf, torch
from biodenoising.denoiser.pretrained import biodenoising16k_dns48
from huggingface_hub import hf_hub_download
from safetensors.torch import load_file

model = biodenoising16k_dns48(pretrained=False)
model.load_state_dict(load_file(hf_hub_download("malper/CallCleaner", "model.safetensors")))
model.eval()

y, _ = librosa.load("noisy.wav", sr=16000, mono=True)       # the model works at 16 kHz, mono
with torch.no_grad():
    clean = model(torch.tensor(y)[None, None])[0, 0, : len(y)].numpy()
sf.write("clean.wav", clean, 16000)
```

For long recordings, process overlapping chunks (e.g. 60 s with a 1 s cross-fade); the command-line
script in the [code repository](https://github.com/morrisalp/CallCleaner) does this, and handles folders and other sample rates.

## Limitations

- Output is 16 kHz: content above 8 kHz (e.g. many bat and some bird and insect calls) is not restored.
- Trained to keep one caller's vocalizations; overlapping calls from other animals may be treated as noise.
- Distilled from a teacher that can miss quiet calls or keep loud non-target sounds; it inherits some
  of these errors. Listen to outputs before using them for analysis.

## License

The weights are a derivative of SAM-Audio and are released under the **SAM License**
(see [LICENSE](LICENSE)); by using or redistributing them you agree to its terms. The Biodenoising
architecture and initialization are MIT-licensed.

## Citation

```bibtex
@article{xie2026callcleaner,
  title         = {CallCleaner: Lightweight Bioacoustic Denoising from an Audio Foundation Model},
  author        = {Michael Xie and Ga{\v{s}}per Begu{\v{s}} and Morris Alper},
  year          = {2026},
  eprint        = {2611.11491},
  archivePrefix = {arXiv}
}
```