This repository contains the official baseline training and evaluation code for the RealDESED domestic sound event detection benchmark.
Dataset: Zenodo | Paper: arXiv; currently under review for the DCASE Workshop 2026
- 🏠 5,710 real-world recordings
- 👥 652 participants collecting recordings in their own homes
- 🎧 645 annotators providing temporal event labels
- ⏱️ 37.85 hours of audio
- 🔊 15 domestic sound event classes
- 📝 64,430 temporally annotated sound events
- 📱 Recordings from a wide range of consumer devices
- 🚶 Static and mobile recording setups
- 🏡 Rich metadata including recording environment, device information, scene descriptions, and more
- ✅ Reviewed validation and test annotations for reliable benchmarking
RealDESED is a new benchmark for domestic sound event detection (SED) consisting exclusively of real-world recordings collected in participants' homes.
Unlike existing SED benchmarks that rely heavily on synthetic soundscapes or web-crawled audio, RealDESED captures realistic recording conditions, including different devices, environments, recording setups, background sounds, and naturally occurring event co-occurrences.
Besides the dataset itself, we provide a strong transformer-based baseline together with extensive analyses of annotation aggregation, long-form inference, post-processing, and recording metadata.
First, install Conda by following the Anaconda installation guide.
Clone this repository and run the setup script:
git clone https://github.com/fschmid56/RealDESED.git
cd RealDESED
bash setup.shThe setup script creates a Conda environment named realdesed, installs the Python dependencies, downloads the public RealDESED dataset from Zenodo into data/downloads/, and extracts the splits to data/train/, data/validation/, and data/test/.
Activate the environment:
conda activate realdesedIf an existing environment fails with ModuleNotFoundError: No module named 'pkg_resources',
downgrade setuptools inside that environment:
python -m pip install "setuptools<81"If training fails in a DataLoader worker with TorchCodec is required for load_with_torchcodec, install the missing audio decoder dependencies:
conda install -y -c conda-forge ffmpeg
python -m pip install torchcodecTo reproduce the weighted annotator labels used by Weighted Soft (
python compute_annotator_score.pyBy default this reads data/train/annotations_raw.csv and writes
data/annotator_quality/annotator_scores_train.json. To use a different
dataset location, pass --root /path/to/dataset.
To run the ATST-F baseline with weighted soft labels:
This uses the reviewed training annotations where available and corresponds to row #10, Weighted + Reviewed, in Table 1 of the arXiv paper.
python train.py \
--dataset_path data \
--output_dir runs \
--experiment_name atst_f_weighted_soft \
--wandb_project RealDESED \
--train_annotation_aggregation "Weighted Soft" \
--annotator_alpha 16 \
--include_reviewed_train_filesTo reproduce the majority-voting results:
python train.py \
--dataset_path data \
--output_dir runs \
--experiment_name atst_f_majority \
--wandb_project RealDESED \
--train_annotation_aggregation MajorityWeights & Biases report for both baseline experiments: RealDESED baselines
Hardware requirements for reproducing the baseline experiments are modest: an NVIDIA GeForce RTX 2080 Ti is sufficient to run the baseline in less than two hours.
Training logs are written to Weights & Biases under the project passed with --wandb_project and the run name passed with --experiment_name.
The most important logged metrics are:
train/loss: training loss.val/loss: validation loss.val/psds1_macroandval/psds2_macro: validation PSDS macro scores used to monitor model quality; the best checkpoint is selected byval/psds1_macro.val/pauroc: validation partial AUROC.val_classwise/psds1/*andval_classwise/psds2/*: class-wise validation PSDS scores.test/*: test-set metrics after applying the global median filter controlled by--median_window.test_classwise/*: class-wise test metrics.
Grouped PSDS metrics are also logged for recording metadata subsets such as device placement, device category, and recording environment.
The training script expects the extracted dataset to use this layout:
data/
train/
audio/
metadata.csv
annotations_raw.csv
validation/
audio/
metadata.csv
annotations.csv
test/
audio/
metadata.csv
annotations.csv
The public baseline trains on the train split, selects the best checkpoint on
validation PSDS1 macro, then evaluates the best checkpoint on the test split.
The main training entry point is train.py. The most commonly changed arguments are:
--dataset_path: path to the extracted RealDESED dataset, defaulting todata.--output_dirand--experiment_name: where local outputs are written and how the run is named.--wandb_project: Weights & Biases project used for logging.--batch_size,--num_workers,--num_devices, and--precision: hardware and dataloader settings.--n_epochs,--max_lr,--weight_decay,--warmup_steps, and--accumulate_grad_batches: optimization settings.--train_annotation_aggregation,--annotator_alpha, and--include_reviewed_train_files: training-label construction settings.--chunk_size,--hop_size,--inference_batch_size, and--sliding_window_stitching: long-form inference settings.--median_window: median-filter post-processing window.
Run python train.py --help for the complete list of available options.
Table 1 in the paper compares different training-label aggregation strategies. To reproduce it, run the ATST-F baseline three times for each row and change the annotation-related command line arguments as listed below.
Use this base command and replace the final aggregation arguments for each row:
python train.py \
--dataset_path data \
--output_dir runs \
--wandb_project RealDESED \
--experiment_name <run_name>Rows #1 to #8 use only the unreviewed multi-annotator training labels:
| Row | Method | Command line arguments |
|---|---|---|
#1 |
Random (Fixed) |
--train_annotation_aggregation "Random (Fixed)" |
#2 |
Random (Epoch) |
--train_annotation_aggregation "Random (Epoch)" |
#3 |
Majority |
--train_annotation_aggregation Majority |
#4 |
Intersection |
--train_annotation_aggregation Intersection |
#5 |
Union |
--train_annotation_aggregation Union |
#6 |
Collector |
--train_annotation_aggregation Collector |
#7 |
Uniform Soft |
--train_annotation_aggregation "Uniform Soft" |
#8 |
Weighted Soft ( |
--train_annotation_aggregation "Weighted Soft" --annotator_alpha 16 |
Rows #9 and #10 additionally use reviewed training annotations where available:
| Row | Method | Command line arguments |
|---|---|---|
#9 |
Majority + Reviewed |
--train_annotation_aggregation Majority --include_reviewed_train_files |
#10 |
Weighted + Reviewed |
--train_annotation_aggregation "Weighted Soft" --annotator_alpha 16 --include_reviewed_train_files |
Before running rows #8 and #10, generate the annotator quality scores once with:
python compute_annotator_score.pyIf you use the RealDESED dataset or this code, please cite the RealDESED paper, which is currently under review for the DCASE Workshop 2026.
@misc{schmid2026realdesed,
author = {Florian Schmid and
Paul Primus and
Alexander Fichtinger and
Tara Jadidi and
Tobias Morocutti and
Gerhard Widmer},
title = {{RealDESED}: A Real-World Domestic Sound Event Detection Benchmark},
year = {2026},
eprint = {2607.16736},
archivePrefix = {arXiv},
primaryClass = {eess.AS},
url = {https://arxiv.org/abs/2607.16736},
note = {Under review for the DCASE Workshop 2026}
}If you use the AudioSet Strong pre-trained baseline, please also cite:
@inproceedings{DBLP:conf/icassp/SchmidMFSPW25,
author = {Florian Schmid and
Tobias Morocutti and
Francesco Foscarin and
Jan Schl{\"{u}}ter and
Paul Primus and
Gerhard Widmer},
title = {Effective Pre-Training of Audio Transformers for Sound Event Detection},
booktitle = {2025 {IEEE} International Conference on Acoustics, Speech and Signal
Processing, {ICASSP} 2025, Hyderabad, India, April 6-11, 2025},
pages = {1--5},
publisher = {{IEEE}},
year = {2025},
url = {https://doi.org/10.1109/ICASSP49660.2025.10888942},
doi = {10.1109/ICASSP49660.2025.10888942}
}The ATST-Frame architecture is published in:
@article{DBLP:journals/taslp/LiSL24,
author = {Xian Li and
Nian Shao and
Xiaofei Li},
title = {Self-Supervised Audio Teacher-Student Transformer for Both Clip-Level
and Frame-Level Tasks},
journal = {{IEEE} {ACM} Trans. Audio Speech Lang. Process.},
volume = {32},
pages = {1336--1351},
year = {2024},
url = {https://doi.org/10.1109/TASLP.2024.3352248},
doi = {10.1109/TASLP.2024.3352248}
}This codebase is released under the MIT License.
The RealDESED dataset is hosted on Zenodo. The dataset licenses specified on Zenodo apply: audio recordings and their corresponding metadata follow the per-file terms listed in metadata.csv, which are either CC0 or CC BY, while the remaining metadata and annotations are licensed under CC BY 4.0.