This is the official implementation of GAP-URGENet, a SOTA universal speech enhancement (USE) model.
GAP-URGENet ranked 1st in the objective evaluation phase of the ICASSP 2026 URGENT Challenge (team WR).
Note: This repo only provides the training scripts for the Predictor and PostNet, as the generative branch (DeWavLM-Omni + Adapter + Vocoder) has already released in our other repo UniPASE.
We provided the original checkpoints for the URGENT 2026 Challenge:
DeWavLM-Omni.ptAdapter.ptVocoder.ptPredictor.ptPostNet.pt
Note: These checkpoints differ from those provided in UniPASE, as all models here were trained on the official training corpora released for the URGENT 2026 Challenge.
To run inference on audio files, use:
python -m inference.inference -I <input_dir> -O <output_dir> [options]For long-form audio inputs (e.g., > 20s), use:
python -m inference.inference_long -I <input_dir> -O <output_dir> [options]| Argument | Requirement / Default | Description |
|---|---|---|
-I (--input_dir) |
required | Path to the input directory containing audio files. |
-O (--output_dir) |
required | Path to the output directory where enhanced files will be saved. |
-D (--device) |
default: cuda:0 |
Torch device to run inference on, e.g., cuda:0, cuda:1, or cpu. |
-E (--extension) |
default: .wav |
Audio file extension to process. |
--sr_out |
default: None |
Output sampling rate (default: same as input) |
--enable_plc |
default: True |
Whether to perform packet loss concealment (PLC) |
Audio examples can be found in ./audio.
Please see UniPASE for training scripts and instructions on:
-
Finetune WavLM
-
Train a Vocoder
-
Train an Adapter
- training script:
train/train_predictor.py - training configuration:
configs/cfg_train_predictor.yamlpython -m train.train_predictor -C configs/cfg_train_predictor.yaml -D 0,1,2,3,4,5,6,7
- training script:
train/train_postnet.py - training configuration:
configs/cfg_train_postnet.yaml
Once all training steps are completed, the corresponding checkpoints can be prepared for inference:
utils/create_ckpt_wavlm.pyis used to create a DeWavLM-Omni checkpoint.utils/create_ckpt.pyis used to create other checkpoints.
If you find this work useful, please cite our paper:
@INPROCEEDINGS{GAP-URGENet,
author={Rong, Xiaobin and Wang, Yushi and Wang, Zheng and Lu, Jing},
booktitle={ICASSP 2026 - 2026 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
title={{GAP-URGENet: A Generative-Predictive Fusion Framework for Universal Speech Enhancement}},
year={2026},
volume={},
number={},
pages={21895-21897},
keywords={speech enhancement;URGENT challenge;generative model;predictive model;fusion},
doi={10.1109/ICASSP55912.2026.11463702}}
Xiaobin Rong: xiaobin.rong@smail.nju.edu.cn

