Noise-aware self-supervision for audio representation learning
Python
0
2 commits
updated Oct 2, 2026
NA-SSL is a framework to extract clean SSL representations from noisy input by using auxiliary noise information. This repository contains the pretrained models and training recipes used in our IWAENC 2026 and DCASE 2026 workshop submissions, and our DCASE 2026 Task 2 Challenge submission.
If you use any part of this code for your work, we ask that you include at least one of the following citations:
@InProceedings{Fujimura2026IWAENC_nassl,
author = {Fujimura, Takuya and Masuyama, Yoshiki and Wichern, Gordon and Boeddeker, Christoph and Richter, Julius and {Le Roux}, Jonathan},
title = {{NABEATs}: Noise-Aware Audio Representation Learning},
booktitle = {Proc. International Workshop on Acoustic Signal Enhancement (IWAENC)},
year = 2026,
month = sep
}
@InProceedings{Fujimura2026DCASE_nassl,
author = {Fujimura, Takuya and Wichern, Gordon and Masuyama, Yoshiki and Boeddeker, Christoph and Saijo, Kohei and Richter, Julius and Edo, Takahiro and {Le Roux}, Jonathan},
title = {Anomalous Sound Detection Meets Noise-Aware Self-Supervised Learning},
booktitle = {Proc. Workshop on Detection and Classification of Acoustic Scenes and Events (DCASE)},
year = 2026,
month = oct
}
The following pretrained checkpoints are provided through GitHub Releases.
| Work | Model | Model ID |
|---|---|---|
| IWAENC 2026 | D-BEATs | iwaenc2026_dbeats_seed0 |
| IWAENC 2026 | NA-BEATs (CA) | iwaenc2026_nabeats_ca_seed0 |
| IWAENC 2026 | NA-BEATs (FiLM) | iwaenc2026_nabeats_film_seed0 |
| DCASE 2026 | NA-BEATs | dcase2026_nabeats_seed{0,1,2} |
| DCASE 2026 | NA-EAT | dcase2026_naeat_seed{0,1,2} |
| DCASE 2026 | NA-Dasheng | dcase2026_nadasheng_seed{0,1,2} |
Python 3.11 or later is required.
Pretrained checkpoints are downloaded automatically from GitHub Releases and cached in ~/.cache/nassl.
export NASSL_CACHE_DIR=/path/to/cache
For example,
uv add git+https://github.com/merlresearch/noise-aware-audio-ssl.git
or
pip install git+https://github.com/merlresearch/noise-aware-audio-ssl.git
NA-BEATs example
import torch
from nassl.utils.restore import restore_model
model = restore_model(model_id="dcase2026_nabeats_seed0", device="cpu")
model.eval()
x = torch.randn(1, 16000 * 10) # Input noisy (batch_size, time)
n_ref = torch.randn(1, 16000 * 10) # Reference noise (batch_size, time)
with torch.inference_mode():
z = model(x, n_ref) # Estimate clean representation
D-BEATs example
model = restore_model(model_id="iwaenc2026_dbeats_seed0", device="cpu")
model.eval()
x = torch.randn(1, 16000 * 10) # Input noisy only
with torch.inference_mode():
z = model(x)
Locally stored checkpoints can be loaded by passing ckpt_path instead of model_id:
model = restore_model(ckpt_path="/path/to/model.ckpt", device="cpu")
git clone https://github.com/merlresearch/noise-aware-audio-ssl.git
cd noise-aware-audio-ssl
uv sync --extra train --locked
The training recipes use FSD50K as the target-sound dataset and WHAM!, DEMAND, and QUT-NOISE as noise datasets.
Run the provided download scripts:
bash jobs/download/fsd50k.sh
bash jobs/download/wham.sh
bash jobs/download/demand.sh
bash jobs/download/qut_noise.sh
Preprocess the base training datasets using:
bash jobs/preprocessing/base_training_data.sh
By default, jobs/train/iwaenc_2026.sh is configured to use two GPUs.
The training scripts iterate over the experiment configurations.
bash jobs/preprocessing/iwaenc_2026.sh
bash jobs/train/iwaenc_2026.sh
By default, jobs/train/dcase_2026.sh is configured to use four GPUs.
The training scripts iterate over the experiment configurations and random seeds.
bash jobs/preprocessing/dcase_2026.sh
bash jobs/train/dcase_2026.sh
By default, training results are saved in noise-aware-audio-ssl/scratch/result/.
Pretrained checkpoints can be loaded using model = restore_model(ckpt_path="/path/to/model.ckpt"), as described in the inference section.
See CONTRIBUTING.md for our policy on contributions.
Released under AGPL-3.0-or-later license, as found in the LICENSE.md file.
All files, except as noted below:
Copyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
SPDX-License-Identifier: AGPL-3.0-or-later
The following files:
src/nassl/model/beats/backbone.pysrc/nassl/model/beats/BEATs.pysrc/nassl/model/beats/modules.pysrc/nassl/model/beats/quantizer.pysrc/nassl/model/beats/Tokenizers.pywere taken from BEATs with only minor modifications to import statements.
Copyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (c) 2022 Microsoft
The following files:
src/nassl/model/beats_extension/dbeats.pysrc/nassl/model/beats_extension/nabeats.pywere adapted from BEATs:
Copyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (c) 2022 Microsoft
Copyright (c) 2019 Facebook, Inc. and its affiliates.
Copyright (c) 2020 Patrick Esser and Robin Rombach and Björn Ommer
The following files:
src/nassl/model/eat/tools.pysrc/nassl/model/eat_extension/naeat.pywere adapted from EAT:
worstchan/EAT-base_epoch30_pretraincwx-worst-one/EATCopyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (c) 2024 Wenxi Chen
The following file:
src/nassl/model/dasheng_extension/nadasheng.pywas adapted from Dasheng:
mispeech/dasheng-baseRicherMans/DashengCopyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (C) 2024 Xiaomi Corporation
Noise-aware self-supervision for audio representation learning
Python
0
2 commits
updated Oct 2, 2026
NA-SSL is a framework to extract clean SSL representations from noisy input by using auxiliary noise information. This repository contains the pretrained models and training recipes used in our IWAENC 2026 and DCASE 2026 workshop submissions, and our DCASE 2026 Task 2 Challenge submission.
If you use any part of this code for your work, we ask that you include at least one of the following citations:
@InProceedings{Fujimura2026IWAENC_nassl,
author = {Fujimura, Takuya and Masuyama, Yoshiki and Wichern, Gordon and Boeddeker, Christoph and Richter, Julius and {Le Roux}, Jonathan},
title = {{NABEATs}: Noise-Aware Audio Representation Learning},
booktitle = {Proc. International Workshop on Acoustic Signal Enhancement (IWAENC)},
year = 2026,
month = sep
}
@InProceedings{Fujimura2026DCASE_nassl,
author = {Fujimura, Takuya and Wichern, Gordon and Masuyama, Yoshiki and Boeddeker, Christoph and Saijo, Kohei and Richter, Julius and Edo, Takahiro and {Le Roux}, Jonathan},
title = {Anomalous Sound Detection Meets Noise-Aware Self-Supervised Learning},
booktitle = {Proc. Workshop on Detection and Classification of Acoustic Scenes and Events (DCASE)},
year = 2026,
month = oct
}
The following pretrained checkpoints are provided through GitHub Releases.
| Work | Model | Model ID |
|---|---|---|
| IWAENC 2026 | D-BEATs | iwaenc2026_dbeats_seed0 |
| IWAENC 2026 | NA-BEATs (CA) | iwaenc2026_nabeats_ca_seed0 |
| IWAENC 2026 | NA-BEATs (FiLM) | iwaenc2026_nabeats_film_seed0 |
| DCASE 2026 | NA-BEATs | dcase2026_nabeats_seed{0,1,2} |
| DCASE 2026 | NA-EAT | dcase2026_naeat_seed{0,1,2} |
| DCASE 2026 | NA-Dasheng | dcase2026_nadasheng_seed{0,1,2} |
Python 3.11 or later is required.
Pretrained checkpoints are downloaded automatically from GitHub Releases and cached in ~/.cache/nassl.
export NASSL_CACHE_DIR=/path/to/cache
For example,
uv add git+https://github.com/merlresearch/noise-aware-audio-ssl.git
or
pip install git+https://github.com/merlresearch/noise-aware-audio-ssl.git
NA-BEATs example
import torch
from nassl.utils.restore import restore_model
model = restore_model(model_id="dcase2026_nabeats_seed0", device="cpu")
model.eval()
x = torch.randn(1, 16000 * 10) # Input noisy (batch_size, time)
n_ref = torch.randn(1, 16000 * 10) # Reference noise (batch_size, time)
with torch.inference_mode():
z = model(x, n_ref) # Estimate clean representation
D-BEATs example
model = restore_model(model_id="iwaenc2026_dbeats_seed0", device="cpu")
model.eval()
x = torch.randn(1, 16000 * 10) # Input noisy only
with torch.inference_mode():
z = model(x)
Locally stored checkpoints can be loaded by passing ckpt_path instead of model_id:
model = restore_model(ckpt_path="/path/to/model.ckpt", device="cpu")
git clone https://github.com/merlresearch/noise-aware-audio-ssl.git
cd noise-aware-audio-ssl
uv sync --extra train --locked
The training recipes use FSD50K as the target-sound dataset and WHAM!, DEMAND, and QUT-NOISE as noise datasets.
Run the provided download scripts:
bash jobs/download/fsd50k.sh
bash jobs/download/wham.sh
bash jobs/download/demand.sh
bash jobs/download/qut_noise.sh
Preprocess the base training datasets using:
bash jobs/preprocessing/base_training_data.sh
By default, jobs/train/iwaenc_2026.sh is configured to use two GPUs.
The training scripts iterate over the experiment configurations.
bash jobs/preprocessing/iwaenc_2026.sh
bash jobs/train/iwaenc_2026.sh
By default, jobs/train/dcase_2026.sh is configured to use four GPUs.
The training scripts iterate over the experiment configurations and random seeds.
bash jobs/preprocessing/dcase_2026.sh
bash jobs/train/dcase_2026.sh
By default, training results are saved in noise-aware-audio-ssl/scratch/result/.
Pretrained checkpoints can be loaded using model = restore_model(ckpt_path="/path/to/model.ckpt"), as described in the inference section.
See CONTRIBUTING.md for our policy on contributions.
Released under AGPL-3.0-or-later license, as found in the LICENSE.md file.
All files, except as noted below:
Copyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
SPDX-License-Identifier: AGPL-3.0-or-later
The following files:
src/nassl/model/beats/backbone.pysrc/nassl/model/beats/BEATs.pysrc/nassl/model/beats/modules.pysrc/nassl/model/beats/quantizer.pysrc/nassl/model/beats/Tokenizers.pywere taken from BEATs with only minor modifications to import statements.
Copyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (c) 2022 Microsoft
The following files:
src/nassl/model/beats_extension/dbeats.pysrc/nassl/model/beats_extension/nabeats.pywere adapted from BEATs:
Copyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (c) 2022 Microsoft
Copyright (c) 2019 Facebook, Inc. and its affiliates.
Copyright (c) 2020 Patrick Esser and Robin Rombach and Björn Ommer
The following files:
src/nassl/model/eat/tools.pysrc/nassl/model/eat_extension/naeat.pywere adapted from EAT:
worstchan/EAT-base_epoch30_pretraincwx-worst-one/EATCopyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (c) 2024 Wenxi Chen
The following file:
src/nassl/model/dasheng_extension/nadasheng.pywas adapted from Dasheng:
mispeech/dasheng-baseRicherMans/DashengCopyright (C) 2026 Mitsubishi Electric Research Laboratories (MERL)
Copyright (C) 2024 Xiaomi Corporation