SURF: Separation via Unsupervised Remixing Flow

2026-06-03Sound

Sound
AI summary

The authors present SURF, a new method to separate mixed signals into original sources without needing clean examples of each source beforehand. They combine ideas from advanced supervised models with a clever remixing technique that helps learn directly from mixed data. This approach improves over past unsupervised methods on tasks involving images and sounds. The authors also connect their method to an older learning algorithm called Wake-Sleep, providing theoretical insights.

single-channel source separationflow matchingunsupervised learninggenerative modelsself-supervised learningWake-Sleep algorithmdomain shiftdiffusion modelsmixture signalsremixing
Authors
Henry Li, Robin Scheibler, Efthymios Tzinis, Matt Shannon, Arnaud Doucet, John R. Hershey
Abstract
The goal of single-channel source separation is to reconstruct $K$ sources given their mixture. In supervised settings where vast amounts of clean source data are available, this challenging, ill-posed problem has been addressed successfully by generative diffusion and flow-based prior models. However, access to such clean source samples is often limited, and even when available, supervised models are vulnerable to domain shifts. To bridge this gap, we present Separation via Unsupervised Remixing Flow (SURF), an unsupervised flow matching approach for source separation that learns directly from observed mixtures. This method relies on a novel combination of state-of-the-art supervised flow matching and regression-based self-supervised techniques. At a high level, starting from a teacher model, we utilize a "remixing" step to bootstrap the learning of a student flow model from the teacher's estimates. We provide insights into the objectives optimized by this approach and draw a novel connection to the Wake-Sleep algorithm. Empirical evaluations on image and audio benchmarks demonstrate that SURF establishes a new state-of-the-art, significantly outperforming existing unsupervised methods. See our demo page for examples. https://google.github.io/df-conformer/surf/