AdapTIGER extends TIGER (ICLR 2025) by replacing its fixed band-split encoder/decoder with a lightweight Spectral Feature Compression (SFC) cross-attention mechanism, enabling input-adaptive spectral grouping while reducing parameters by 15%.
Based on:
TIGER achieves competitive speech separation with only 822K parameters using hand-crafted frequency band splits (67 fixed sub-bands). However, these fixed boundaries cannot adapt to input characteristics - different speaker pitches, noise profiles, or acoustic conditions would benefit from different spectral groupings.
AdapTIGER replaces TIGER's 134 independent per-band modules (67 encoder + 67 decoder) with a single SFC encoder-decoder pair based on cross-attention. This:
| File | Description |
|---|---|
look2hear/models/sfc.py | SFC encoder/decoder - cross-attention replacing fixed band-split modules |
look2hear/models/sigreg.py | SIGReg anti-collapse regularizer |
graphs/plot_sfc_interpretability.py | SFC attention analysis and visualization |
analysis_outputs/sfc_interpretability/ | Generated attention heatmaps, adaptivity plots |
paper_figures/ | Publication-ready figures |
results/table_test.csv, results/table_validation.csv | Aggregated experiment results |
train-student.slurm | SLURM script for studentkillable partition |
run_eval_after_train.py | Helper called by audio_train.py for post-training eval |
configs/tiger-sfc-*.yml | All SFC experiment configs |
| File | What changed |
|---|---|
look2hear/models/tiger.py | Added use_sfc flag - when enabled, replaces 67 per-band encoder/decoder modules with SFC |
look2hear/system/audio_litmodule.py | Added SFC regularization loss forwarding, W&B logging of SFC metrics |
look2hear/metrics/wrapper.py | Extended with additional evaluation metrics |
audio_train.py | Added auto-resubmit on SLURM wall-time, gradient checkpointing, post-training eval |
audio_test.py | Added efficiency benchmarking (MACs, inference time, memory), CSV result logging |
train.slurm | Adapted for our cluster (8 GPUs, local /tmp venv fallback, NCCL P2P disabled) |
eval.slurm | Evaluation SLURM script |
configs/tiger-baseline-3s.yml | Baseline config tuned for our setup (3s segments, 100 epochs) |
look2hear/models/tiger.py - core separator architecture (FFI blocks, F3A, MSA modules) is untouchedlook2hear/losses/ - PIT wrapper and loss functions (neg SI-SDR, neg SNR)look2hear/datas/ - EchoSet and Libri2Mix data modulesinference_speech.py, inference_dnr.py - inference scriptsdownload_echoset.py - dataset downloadassets/ - original TIGER figures and logoSFC Encoder/Decoder: Replaces 134 fixed per-band modules with a single cross-attention mechanism. Learnable band queries (K=67) attend to frequency bins (F=321), producing soft, input-dependent spectral groupings.
G1 Gated Attention: Per-head sigmoid gate applied after scaled dot-product attention, breaking the low-rank bottleneck (rank <= d_head) inherent in standard multi-head attention.
SVD Query Initialization: Band queries initialized deterministically from the top singular vectors of the positional bias matrix - eliminates 3dB seed sensitivity observed with random initialization.
Four-Part Anti-Collapse Regularization (AdapTIGER-Reg variant):
AdapTIGER preserves TIGER's core separator (8 FFI blocks with F3A and MSA modules) and modifies only the encoder/decoder:
Input Mixture
|
STFT (win=640, hop=160) --> 321 freq bins x T frames
|
[SFC Encoder] <-- NEW: cross-attention (67 band queries attend to 321 freq keys)
| with G1 gating, positional bias, SwiGLU FFN
|
Separator (8 FFI blocks, unchanged from TIGER)
|
[SFC Decoder] <-- NEW: cross-attention (321 freq queries attend to 67 band keys)
|
Complex Mask x iSTFT
|
Separated Sources (x2)

Performance on EchoSet (two-speaker separation):
| Model | Params | Val SI-SDRi (dB) | Test SI-SDRi (dB) | Adaptivity | Eff. Rank | Band Cosine Sim |
|---|---|---|---|---|---|---|
| Baseline TIGER | 822K | 13.67 | 13.14 | 0 | 56.3/67 | 0.15 |
| AdapTIGER-clean | 696K | 13.31 | 11.45 | 0.001 | 2.5/67 | 0.71 |
| AdapTIGER-reg | 696K | 12.69 | 10.79 | 0.002 | 20.4/67 | 0.08 |
git clone <this-repo>
cd TIGER-plus
pip install -r requirements.txt
On a SLURM cluster (recommended):
sbatch train.slurm
Or directly with PyTorch Lightning:
python audio_train.py --conf_dir configs/tiger-sfc-clean-v2.yml
Available configurations:
tiger-baseline-3s.yml - Baseline TIGER (no SFC)tiger-sfc-clean-v2.yml - AdapTIGER-clean (SFC, no regularization)tiger-sfc-v11-3s.yml - AdapTIGER with SIGReg regularizationpython audio_test.py --conf_dir configs/tiger-sfc-clean-v2.yml
Results are appended to results/table_test.csv and results/table_validation.csv.
python inference_speech.py --audio_path path/to/mixture.wav
EchoSet (20,268 train / 4,604 val / 2,650 test samples at 16kHz):
sbatch download.slurm
# or
python download_echoset.py
audio_train.py # Training entry point (Lightning CLI)
audio_test.py # Evaluation entry point
inference_speech.py # Single-file inference
configs/
tiger-baseline-3s.yml # Baseline TIGER config
tiger-sfc-clean-v2.yml # AdapTIGER-clean config
tiger-sfc-v11-3s.yml # AdapTIGER with regularization
look2hear/
models/
tiger.py # TIGER model (use_sfc flag toggles SFC)
sfc.py # SFC encoder/decoder (cross-attention)
sigreg.py # SIGReg anti-collapse regularizer
system/
audio_litmodule.py # PyTorch Lightning training module
losses/
matrix.py # Loss functions (neg SI-SDR, neg SNR)
pit_wrapper.py # Permutation Invariant Training
datas/
echosetdatamodule.py # EchoSet data module
metrics/
wrapper.py # Evaluation metrics
results/
table_test.csv # Test set results across experiments
table_validation.csv # Validation results across experiments
graphs/
plot_sfc_interpretability.py # SFC attention visualization
analysis_outputs/
sfc_interpretability/ # Attention heatmaps, adaptivity plots
paper_figures/ # Publication-ready figures
train.slurm # SLURM training script (8 GPUs, DDP)
eval.slurm # SLURM evaluation script
download.slurm # SLURM dataset download script
Experiments/ # Training outputs (checkpoints, logs)
DataPreProcess/EchoSet/ # Downloaded dataset
@article{xu2024tiger,
title={TIGER: Time-frequency Interleaved Gain Extraction and Reconstruction for Efficient Speech Separation},
author={Xu, Mohan and Li, Kai and Chen, Guo and Hu, Xiaolin},
journal={arXiv preprint arXiv:2410.01469},
year={2024}
}
This project builds on TIGER by Mohan Xu, Kai Li, Guo Chen, and Xiaolin Hu (Tsinghua University), and incorporates ideas from the Spectral Feature Compression framework.
AdapTIGER extends TIGER (ICLR 2025) by replacing its fixed band-split encoder/decoder with a lightweight Spectral Feature Compression (SFC) cross-attention mechanism, enabling input-adaptive spectral grouping while reducing parameters by 15%.
Based on:
TIGER achieves competitive speech separation with only 822K parameters using hand-crafted frequency band splits (67 fixed sub-bands). However, these fixed boundaries cannot adapt to input characteristics - different speaker pitches, noise profiles, or acoustic conditions would benefit from different spectral groupings.
AdapTIGER replaces TIGER's 134 independent per-band modules (67 encoder + 67 decoder) with a single SFC encoder-decoder pair based on cross-attention. This:
| File | Description |
|---|---|
look2hear/models/sfc.py | SFC encoder/decoder - cross-attention replacing fixed band-split modules |
look2hear/models/sigreg.py | SIGReg anti-collapse regularizer |
graphs/plot_sfc_interpretability.py | SFC attention analysis and visualization |
analysis_outputs/sfc_interpretability/ | Generated attention heatmaps, adaptivity plots |
paper_figures/ | Publication-ready figures |
results/table_test.csv, results/table_validation.csv | Aggregated experiment results |
train-student.slurm | SLURM script for studentkillable partition |
run_eval_after_train.py | Helper called by audio_train.py for post-training eval |
configs/tiger-sfc-*.yml | All SFC experiment configs |
| File | What changed |
|---|---|
look2hear/models/tiger.py | Added use_sfc flag - when enabled, replaces 67 per-band encoder/decoder modules with SFC |
look2hear/system/audio_litmodule.py | Added SFC regularization loss forwarding, W&B logging of SFC metrics |
look2hear/metrics/wrapper.py | Extended with additional evaluation metrics |
audio_train.py | Added auto-resubmit on SLURM wall-time, gradient checkpointing, post-training eval |
audio_test.py | Added efficiency benchmarking (MACs, inference time, memory), CSV result logging |
train.slurm | Adapted for our cluster (8 GPUs, local /tmp venv fallback, NCCL P2P disabled) |
eval.slurm | Evaluation SLURM script |
configs/tiger-baseline-3s.yml | Baseline config tuned for our setup (3s segments, 100 epochs) |
look2hear/models/tiger.py - core separator architecture (FFI blocks, F3A, MSA modules) is untouchedlook2hear/losses/ - PIT wrapper and loss functions (neg SI-SDR, neg SNR)look2hear/datas/ - EchoSet and Libri2Mix data modulesinference_speech.py, inference_dnr.py - inference scriptsdownload_echoset.py - dataset downloadassets/ - original TIGER figures and logoSFC Encoder/Decoder: Replaces 134 fixed per-band modules with a single cross-attention mechanism. Learnable band queries (K=67) attend to frequency bins (F=321), producing soft, input-dependent spectral groupings.
G1 Gated Attention: Per-head sigmoid gate applied after scaled dot-product attention, breaking the low-rank bottleneck (rank <= d_head) inherent in standard multi-head attention.
SVD Query Initialization: Band queries initialized deterministically from the top singular vectors of the positional bias matrix - eliminates 3dB seed sensitivity observed with random initialization.
Four-Part Anti-Collapse Regularization (AdapTIGER-Reg variant):
AdapTIGER preserves TIGER's core separator (8 FFI blocks with F3A and MSA modules) and modifies only the encoder/decoder:
Input Mixture
|
STFT (win=640, hop=160) --> 321 freq bins x T frames
|
[SFC Encoder] <-- NEW: cross-attention (67 band queries attend to 321 freq keys)
| with G1 gating, positional bias, SwiGLU FFN
|
Separator (8 FFI blocks, unchanged from TIGER)
|
[SFC Decoder] <-- NEW: cross-attention (321 freq queries attend to 67 band keys)
|
Complex Mask x iSTFT
|
Separated Sources (x2)

Performance on EchoSet (two-speaker separation):
| Model | Params | Val SI-SDRi (dB) | Test SI-SDRi (dB) | Adaptivity | Eff. Rank | Band Cosine Sim |
|---|---|---|---|---|---|---|
| Baseline TIGER | 822K | 13.67 | 13.14 | 0 | 56.3/67 | 0.15 |
| AdapTIGER-clean | 696K | 13.31 | 11.45 | 0.001 | 2.5/67 | 0.71 |
| AdapTIGER-reg | 696K | 12.69 | 10.79 | 0.002 | 20.4/67 | 0.08 |
git clone <this-repo>
cd TIGER-plus
pip install -r requirements.txt
On a SLURM cluster (recommended):
sbatch train.slurm
Or directly with PyTorch Lightning:
python audio_train.py --conf_dir configs/tiger-sfc-clean-v2.yml
Available configurations:
tiger-baseline-3s.yml - Baseline TIGER (no SFC)tiger-sfc-clean-v2.yml - AdapTIGER-clean (SFC, no regularization)tiger-sfc-v11-3s.yml - AdapTIGER with SIGReg regularizationpython audio_test.py --conf_dir configs/tiger-sfc-clean-v2.yml
Results are appended to results/table_test.csv and results/table_validation.csv.
python inference_speech.py --audio_path path/to/mixture.wav
EchoSet (20,268 train / 4,604 val / 2,650 test samples at 16kHz):
sbatch download.slurm
# or
python download_echoset.py
audio_train.py # Training entry point (Lightning CLI)
audio_test.py # Evaluation entry point
inference_speech.py # Single-file inference
configs/
tiger-baseline-3s.yml # Baseline TIGER config
tiger-sfc-clean-v2.yml # AdapTIGER-clean config
tiger-sfc-v11-3s.yml # AdapTIGER with regularization
look2hear/
models/
tiger.py # TIGER model (use_sfc flag toggles SFC)
sfc.py # SFC encoder/decoder (cross-attention)
sigreg.py # SIGReg anti-collapse regularizer
system/
audio_litmodule.py # PyTorch Lightning training module
losses/
matrix.py # Loss functions (neg SI-SDR, neg SNR)
pit_wrapper.py # Permutation Invariant Training
datas/
echosetdatamodule.py # EchoSet data module
metrics/
wrapper.py # Evaluation metrics
results/
table_test.csv # Test set results across experiments
table_validation.csv # Validation results across experiments
graphs/
plot_sfc_interpretability.py # SFC attention visualization
analysis_outputs/
sfc_interpretability/ # Attention heatmaps, adaptivity plots
paper_figures/ # Publication-ready figures
train.slurm # SLURM training script (8 GPUs, DDP)
eval.slurm # SLURM evaluation script
download.slurm # SLURM dataset download script
Experiments/ # Training outputs (checkpoints, logs)
DataPreProcess/EchoSet/ # Downloaded dataset
@article{xu2024tiger,
title={TIGER: Time-frequency Interleaved Gain Extraction and Reconstruction for Efficient Speech Separation},
author={Xu, Mohan and Li, Kai and Chen, Guo and Hu, Xiaolin},
journal={arXiv preprint arXiv:2410.01469},
year={2024}
}
This project builds on TIGER by Mohan Xu, Kai Li, Guo Chen, and Xiaolin Hu (Tsinghua University), and incorporates ideas from the Spectral Feature Compression framework.