This repository contains the data preparation scripts and training configuration used to build and run SELD experiments on:
STARSS23SpatialQA / HFData- merged
STARSS23 + HFData
The repository also contains two model families:
- original
DCASE2024 SELD baseline - modified
dcase2024-SedHead
For the merged STARSS23 + HFData setup, the latest rerun split uses STARSS23 train-internal / val-internal / test, and the corresponding rerun tasks are 255-258.
This README is written for someone who did not participate in the original setup and needs a practical, end-to-end overview.
Under code/:
prepare_real_foa_to_dcase.pysegment_starss23_fixed20s.pysegment_spatialqa_event_based.pyconvert_spatialqa_json_to_dcase_csv.pynormalize_hf_json_headings.pyresample_merged_foa_dataset_to_16k.py
Under dcase2024-SedHead/:
parameters.pytrain_seldnet.pybatch_feature_extraction.py- modified label / loss handling code
- wait-launch scripts for queued experiments
- dataset processing summary:
data_preparation_summary.md - full Chinese reproduction guide for newcomers:
REPRODUCTION_GUIDE_ZH.md - code-specific Chinese README:
code/README.md
This repository does not include the raw datasets themselves.
You need to prepare:
- raw
STARSS23 - raw
HFData / SpatialQA
and place them into the expected directories on your server before running the scripts.
Final processed dataset root:
/data/zhuzhiyuan/starss23/STARSS23_20s_16k
Used by:
247/251/249/253
Final processed dataset root:
/data/zhuzhiyuan/starss23/merged_seld_foa_starss23_spatialqa_20s_16k
Used by:
248/252/250/254
Start from the original STARSS23 dataset root:
/data/zhuzhiyuan/starss23/STARSS23
Then:
- segment into fixed 20-second clips
- resample to 16kHz
- generate a STARSS23-only split manifest
Outputs:
/data/zhuzhiyuan/starss23/STARSS23_20s/data/zhuzhiyuan/starss23/STARSS23_20s_16k
Start from raw audio/video/json files.
Then:
- flatten and rename files by timestamp
- normalize
headingto[-180, 180) - map / merge event categories
- remove events mapped to
0 - segment by event-aware rules
- convert JSON annotations into STARSS23-style CSV
Outputs:
/data/zhuzhiyuan/starss23/SpatialQA_hf/data/zhuzhiyuan/starss23/SpatialQA_hf_segmented/data/zhuzhiyuan/starss23/SpatialQA_hf_csv/data/zhuzhiyuan/starss23/SpatialQA_hf_segmented_csv
Create a DCASE-style merged dataset root:
foa_dev/metadata_dev/video_dev/class_mapping.jsonsplit_manifest.json
Final root:
/data/zhuzhiyuan/starss23/merged_seld_foa_starss23_spatialqa_20s_16k
train: 90% of STARSS23 trainvalid: 10% of STARSS23 traintest: official STARSS23 test
train: STARSS23 train + HF train + HF testvalid: HF evaltest: STARSS23 test
This means:
- final benchmark score is always reported on
STARSS23 test
247: STARSS23-only,audio-only248: STARSS23 + HF,audio-only249: STARSS23-only,audio-visual250: STARSS23 + HF,audio-visual
251: STARSS23-only,audio-only252: STARSS23 + HF,audio-only253: STARSS23-only,audio-visual254: STARSS23 + HF,audio-visual
Training does not directly read raw .wav or .mp4. It reads extracted .npy feature caches.
247->/data/zhuzhiyuan/starss23/seld_feat_label/starss23_20s_16k_task247248->/data/zhuzhiyuan/starss23/seld_feat_label/merged_starss23_spatialqa_16k_task248249->/data/zhuzhiyuan/starss23/seld_feat_label/starss23_20s_16k_task249_av250->/data/zhuzhiyuan/starss23/seld_feat_label/merged_starss23_spatialqa_16k_task250_av
To save time, baseline tasks reuse the exact same extracted features:
251reuses247252reuses248253reuses249254reuses250
So you do not need to extract the same features twice.
Recommended order:
- run
247and248 - run
251and252 - run
249and250 - run
253and254
This gives:
- audio-only results first
- then audio-visual results
- and avoids repeated feature extraction
These scripts wait for resources and then launch experiments sequentially.
Order:
247 -> 251 -> 249 -> 253
Order:
248 -> 252 -> 250 -> 254
If you need more detail:
- full data processing notes:
data_preparation_summary.md - code-level Chinese explanation:
code/README.md