[Discussion] Why are separate U-Nets used for each instrument?
- 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
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