deezer / deezer/spleeter

[Discussion] Why are separate U-Nets used for each instrument?

Open
#616 0 comments 0 reactions 0 assignees View on GitHub
question
Dominant language
Python
Stars
28.4k
Forks
3.1k
PR merge metrics
No merged PRs in 30d

Description

Hello! I have a more general question about the model architecture used – Spleeter appears to train a separate U-Net for each instrument track, effectively training separate models for each instrument. What motivated this architecture, as opposed to using a single encoder-decoder that predicts masks for everything all at once? (which is more common in analogous image segmentation models)

I'm exploring source separation for music which doesn't fit the vocals/drums/piano/bass format and it doesn't seem like there's a straightforward way to fine-tune these models for different instruments or more than 5 stems. It also seems to imply that you can train these separators separately (i.e. a piano extractor, a voice extractor, etc.) which is potentially interesting.

Apologies if this has already been discussed elsewhere, I couldn't find anything in the issues/wiki/paper about it.

Thanks!

Contributor guide

Open the contributing guide

Research direction

Start with the U-Net architecture discussion and the repository's wiki or paper, which the issue identifies as relevant sources. The issue provides no file, test, implementation entry point, or acceptance criteria; done would require a documented answer explaining the separate-instrument design and its implications for custom stems.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, tensorflow
Domain
audio-video-rtc, machine-learning
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.