Spaces:
Running
Running
forked from akhaliq
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- CODE_OF_CONDUCT.md +0 -76
- CONTRIBUTING.md +0 -23
- Demucs.ipynb +0 -115
- LICENSE +0 -21
- MANIFEST.in +0 -6
- Makefile +0 -19
- README.md +28 -370
- app.py +26 -0
- baselines/.DS_Store +0 -0
- baselines/IRM2/test/AM Contra - Heart Peripheral.json.gz +0 -3
- baselines/IRM2/test/Al James - Schoolboy Facination.json.gz +0 -3
- baselines/IRM2/test/Angels In Amplifiers - I'm Alright.json.gz +0 -3
- baselines/IRM2/test/Arise - Run Run Run.json.gz +0 -3
- baselines/IRM2/test/BKS - Bulldozer.json.gz +0 -3
- baselines/IRM2/test/BKS - Too Much.json.gz +0 -3
- baselines/IRM2/test/Ben Carrigan - We'll Talk About It All Tonight.json.gz +0 -3
- baselines/IRM2/test/Bobby Nobody - Stitch Up.json.gz +0 -3
- baselines/IRM2/test/Buitraker - Revo X.json.gz +0 -3
- baselines/IRM2/test/Carlos Gonzalez - A Place For Us.json.gz +0 -3
- baselines/IRM2/test/Cristina Vane - So Easy.json.gz +0 -3
- baselines/IRM2/test/Detsky Sad - Walkie Talkie.json.gz +0 -3
- baselines/IRM2/test/Enda Reilly - Cur An Long Ag Seol.json.gz +0 -3
- baselines/IRM2/test/Forkupines - Semantics.json.gz +0 -3
- baselines/IRM2/test/Georgia Wonder - Siren.json.gz +0 -3
- baselines/IRM2/test/Girls Under Glass - We Feel Alright.json.gz +0 -3
- baselines/IRM2/test/Hollow Ground - Ill Fate.json.gz +0 -3
- baselines/IRM2/test/James Elder & Mark M Thompson - The English Actor.json.gz +0 -3
- baselines/IRM2/test/Juliet's Rescue - Heartbeats.json.gz +0 -3
- baselines/IRM2/test/Little Chicago's Finest - My Own.json.gz +0 -3
- baselines/IRM2/test/Louis Cressy Band - Good Time.json.gz +0 -3
- baselines/IRM2/test/Lyndsey Ollard - Catching Up.json.gz +0 -3
- baselines/IRM2/test/M.E.R.C. Music - Knockout.json.gz +0 -3
- baselines/IRM2/test/Moosmusic - Big Dummy Shake.json.gz +0 -3
- baselines/IRM2/test/Motor Tapes - Shore.json.gz +0 -3
- baselines/IRM2/test/Mu - Too Bright.json.gz +0 -3
- baselines/IRM2/test/Nerve 9 - Pray For The Rain.json.gz +0 -3
- baselines/IRM2/test/PR - Happy Daze.json.gz +0 -3
- baselines/IRM2/test/PR - Oh No.json.gz +0 -3
- baselines/IRM2/test/Punkdisco - Oral Hygiene.json.gz +0 -3
- baselines/IRM2/test/Raft Monk - Tiring.json.gz +0 -3
- baselines/IRM2/test/Sambasevam Shanmugam - Kaathaadi.json.gz +0 -3
- baselines/IRM2/test/Secretariat - Borderline.json.gz +0 -3
- baselines/IRM2/test/Secretariat - Over The Top.json.gz +0 -3
- baselines/IRM2/test/Side Effects Project - Sing With Me.json.gz +0 -3
- baselines/IRM2/test/Signe Jakobsen - What Have You Done To Me.json.gz +0 -3
- baselines/IRM2/test/Skelpolu - Resurrection.json.gz +0 -3
- baselines/IRM2/test/Speak Softly - Broken Man.json.gz +0 -3
- baselines/IRM2/test/Speak Softly - Like Horses.json.gz +0 -3
- baselines/IRM2/test/The Doppler Shift - Atrophy.json.gz +0 -3
- baselines/IRM2/test/The Easton Ellises (Baumi) - SDRNR.json.gz +0 -3
CODE_OF_CONDUCT.md
DELETED
@@ -1,76 +0,0 @@
|
|
1 |
-
# Code of Conduct
|
2 |
-
|
3 |
-
## Our Pledge
|
4 |
-
|
5 |
-
In the interest of fostering an open and welcoming environment, we as
|
6 |
-
contributors and maintainers pledge to make participation in our project and
|
7 |
-
our community a harassment-free experience for everyone, regardless of age, body
|
8 |
-
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
9 |
-
level of experience, education, socio-economic status, nationality, personal
|
10 |
-
appearance, race, religion, or sexual identity and orientation.
|
11 |
-
|
12 |
-
## Our Standards
|
13 |
-
|
14 |
-
Examples of behavior that contributes to creating a positive environment
|
15 |
-
include:
|
16 |
-
|
17 |
-
* Using welcoming and inclusive language
|
18 |
-
* Being respectful of differing viewpoints and experiences
|
19 |
-
* Gracefully accepting constructive criticism
|
20 |
-
* Focusing on what is best for the community
|
21 |
-
* Showing empathy towards other community members
|
22 |
-
|
23 |
-
Examples of unacceptable behavior by participants include:
|
24 |
-
|
25 |
-
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26 |
-
advances
|
27 |
-
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28 |
-
* Public or private harassment
|
29 |
-
* Publishing others' private information, such as a physical or electronic
|
30 |
-
address, without explicit permission
|
31 |
-
* Other conduct which could reasonably be considered inappropriate in a
|
32 |
-
professional setting
|
33 |
-
|
34 |
-
## Our Responsibilities
|
35 |
-
|
36 |
-
Project maintainers are responsible for clarifying the standards of acceptable
|
37 |
-
behavior and are expected to take appropriate and fair corrective action in
|
38 |
-
response to any instances of unacceptable behavior.
|
39 |
-
|
40 |
-
Project maintainers have the right and responsibility to remove, edit, or
|
41 |
-
reject comments, commits, code, wiki edits, issues, and other contributions
|
42 |
-
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43 |
-
permanently any contributor for other behaviors that they deem inappropriate,
|
44 |
-
threatening, offensive, or harmful.
|
45 |
-
|
46 |
-
## Scope
|
47 |
-
|
48 |
-
This Code of Conduct applies within all project spaces, and it also applies when
|
49 |
-
an individual is representing the project or its community in public spaces.
|
50 |
-
Examples of representing a project or community include using an official
|
51 |
-
project e-mail address, posting via an official social media account, or acting
|
52 |
-
as an appointed representative at an online or offline event. Representation of
|
53 |
-
a project may be further defined and clarified by project maintainers.
|
54 |
-
|
55 |
-
## Enforcement
|
56 |
-
|
57 |
-
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58 |
-
reported by contacting the project team at <[email protected]>. All
|
59 |
-
complaints will be reviewed and investigated and will result in a response that
|
60 |
-
is deemed necessary and appropriate to the circumstances. The project team is
|
61 |
-
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62 |
-
Further details of specific enforcement policies may be posted separately.
|
63 |
-
|
64 |
-
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65 |
-
faith may face temporary or permanent repercussions as determined by other
|
66 |
-
members of the project's leadership.
|
67 |
-
|
68 |
-
## Attribution
|
69 |
-
|
70 |
-
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71 |
-
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
72 |
-
|
73 |
-
[homepage]: https://www.contributor-covenant.org
|
74 |
-
|
75 |
-
For answers to common questions about this code of conduct, see
|
76 |
-
https://www.contributor-covenant.org/faq
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CONTRIBUTING.md
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
# Contributing to Demucs
|
2 |
-
|
3 |
-
## Pull Requests
|
4 |
-
|
5 |
-
In order to accept your pull request, we need you to submit a CLA. You only need
|
6 |
-
to do this once to work on any of Facebook's open source projects.
|
7 |
-
|
8 |
-
Complete your CLA here: <https://code.facebook.com/cla>
|
9 |
-
|
10 |
-
Demucs is the implementation of a research paper.
|
11 |
-
Therefore, we do not plan on accepting many pull requests for new features.
|
12 |
-
We certainly welcome them for bug fixes.
|
13 |
-
|
14 |
-
|
15 |
-
## Issues
|
16 |
-
|
17 |
-
We use GitHub issues to track public bugs. Please ensure your description is
|
18 |
-
clear and has sufficient instructions to be able to reproduce the issue.
|
19 |
-
|
20 |
-
|
21 |
-
## License
|
22 |
-
By contributing to this repository, you agree that your contributions will be licensed
|
23 |
-
under the LICENSE file in the root directory of this source tree.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Demucs.ipynb
DELETED
@@ -1,115 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"cells": [
|
3 |
-
{
|
4 |
-
"cell_type": "markdown",
|
5 |
-
"metadata": {
|
6 |
-
"colab_type": "text",
|
7 |
-
"id": "Be9yoh-ILfRr"
|
8 |
-
},
|
9 |
-
"source": [
|
10 |
-
"# [*Colab code for Demucs*](https://github.com/facebookresearch/demucs/)\n",
|
11 |
-
"\n",
|
12 |
-
"Original version by marlluslustosa **https://github.com/marlluslustosa/demucs/blob/master/Demucs.ipynb**\n",
|
13 |
-
"\n",
|
14 |
-
"However, now things are much simpler with Demucs v2, so this might not be so useful. There is now a Colab version:\n",
|
15 |
-
"https://colab.research.google.com/drive/1jCegIzLIuqqcM85uVs3WCeAJiSoYq3oh?usp=sharing"
|
16 |
-
]
|
17 |
-
},
|
18 |
-
{
|
19 |
-
"cell_type": "code",
|
20 |
-
"execution_count": null,
|
21 |
-
"metadata": {
|
22 |
-
"colab": {
|
23 |
-
"base_uri": "https://localhost:8080/",
|
24 |
-
"height": 139
|
25 |
-
},
|
26 |
-
"colab_type": "code",
|
27 |
-
"executionInfo": {
|
28 |
-
"elapsed": 12277,
|
29 |
-
"status": "ok",
|
30 |
-
"timestamp": 1583778134659,
|
31 |
-
"user": {
|
32 |
-
"displayName": "Marllus Lustosa",
|
33 |
-
"photoUrl": "https://lh3.googleusercontent.com/a-/AOh14GgLl2RbW64ZyWz3Y8IBku0zhHCMnt7fz7fEl0LTdA=s64",
|
34 |
-
"userId": "14811735256675200480"
|
35 |
-
},
|
36 |
-
"user_tz": 180
|
37 |
-
},
|
38 |
-
"id": "kOjIPLlzhPfn",
|
39 |
-
"outputId": "c75f17ec-b576-4105-bc5b-c2ac9c1018a3"
|
40 |
-
},
|
41 |
-
"outputs": [],
|
42 |
-
"source": [
|
43 |
-
"!pip install demucs"
|
44 |
-
]
|
45 |
-
},
|
46 |
-
{
|
47 |
-
"cell_type": "markdown",
|
48 |
-
"metadata": {
|
49 |
-
"colab_type": "text",
|
50 |
-
"id": "Y1BdlzOQi3y7"
|
51 |
-
},
|
52 |
-
"source": [
|
53 |
-
"\n",
|
54 |
-
"\n",
|
55 |
-
"---\n",
|
56 |
-
"\n",
|
57 |
-
"\n",
|
58 |
-
"# **Here begins the code for separating the audio source (model pretrained)**\n",
|
59 |
-
"###**- Upload your song to demucs/ folder and edit YOUR-SONG-PATH.mp3**\n",
|
60 |
-
"\n",
|
61 |
-
"\n",
|
62 |
-
"---\n",
|
63 |
-
"\n"
|
64 |
-
]
|
65 |
-
},
|
66 |
-
{
|
67 |
-
"cell_type": "code",
|
68 |
-
"execution_count": null,
|
69 |
-
"metadata": {
|
70 |
-
"colab": {},
|
71 |
-
"colab_type": "code",
|
72 |
-
"id": "5lYOzKKCKAbJ"
|
73 |
-
},
|
74 |
-
"outputs": [],
|
75 |
-
"source": [
|
76 |
-
"!python3 -m demucs.separate test.mp3"
|
77 |
-
]
|
78 |
-
},
|
79 |
-
{
|
80 |
-
"cell_type": "code",
|
81 |
-
"execution_count": null,
|
82 |
-
"metadata": {},
|
83 |
-
"outputs": [],
|
84 |
-
"source": []
|
85 |
-
}
|
86 |
-
],
|
87 |
-
"metadata": {
|
88 |
-
"accelerator": "GPU",
|
89 |
-
"colab": {
|
90 |
-
"authorship_tag": "ABX9TyM9xpVr1M86NRcjtQ7g9tCx",
|
91 |
-
"collapsed_sections": [],
|
92 |
-
"name": "Demucs.ipynb",
|
93 |
-
"provenance": []
|
94 |
-
},
|
95 |
-
"kernelspec": {
|
96 |
-
"display_name": "Python 3",
|
97 |
-
"language": "python",
|
98 |
-
"name": "python3"
|
99 |
-
},
|
100 |
-
"language_info": {
|
101 |
-
"codemirror_mode": {
|
102 |
-
"name": "ipython",
|
103 |
-
"version": 3
|
104 |
-
},
|
105 |
-
"file_extension": ".py",
|
106 |
-
"mimetype": "text/x-python",
|
107 |
-
"name": "python",
|
108 |
-
"nbconvert_exporter": "python",
|
109 |
-
"pygments_lexer": "ipython3",
|
110 |
-
"version": "3.8.3"
|
111 |
-
}
|
112 |
-
},
|
113 |
-
"nbformat": 4,
|
114 |
-
"nbformat_minor": 1
|
115 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LICENSE
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
MIT License
|
2 |
-
|
3 |
-
Copyright (c) Facebook, Inc. and its affiliates.
|
4 |
-
|
5 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
-
of this software and associated documentation files (the "Software"), to deal
|
7 |
-
in the Software without restriction, including without limitation the rights
|
8 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
-
copies of the Software, and to permit persons to whom the Software is
|
10 |
-
furnished to do so, subject to the following conditions:
|
11 |
-
|
12 |
-
The above copyright notice and this permission notice shall be included in all
|
13 |
-
copies or substantial portions of the Software.
|
14 |
-
|
15 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 |
-
SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MANIFEST.in
DELETED
@@ -1,6 +0,0 @@
|
|
1 |
-
include *.md
|
2 |
-
include LICENSE
|
3 |
-
include setup.cfg
|
4 |
-
incude demucs.png
|
5 |
-
include requirements.txt
|
6 |
-
recursive-include docs *.md
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Makefile
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
default: tests
|
2 |
-
|
3 |
-
all: linter tests docs dist
|
4 |
-
|
5 |
-
linter:
|
6 |
-
flake8 demucs
|
7 |
-
|
8 |
-
tests:
|
9 |
-
python3 -m demucs.separate -n demucs_unittest test.mp3
|
10 |
-
python3 -m demucs.separate -n demucs_unittest --mp3 test.mp3
|
11 |
-
|
12 |
-
dist:
|
13 |
-
python3 setup.py sdist
|
14 |
-
|
15 |
-
clean:
|
16 |
-
rm -r dist build *.egg-info
|
17 |
-
|
18 |
-
|
19 |
-
.PHONY: linter tests dist
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
README.md
CHANGED
@@ -1,379 +1,37 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
-
|
4 |
-
![linter badge](https://github.com/facebookresearch/demucs/workflows/linter/badge.svg)
|
5 |
|
6 |
-
|
|
|
7 |
|
8 |
-
|
|
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
`git checkout v1`.
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
The architecture and results obtained are detailed in our paper
|
17 |
-
[Music Source Separation in the waveform domain][demucs_arxiv].
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
and transposed convolutions in the decoder.
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
We reused the code from the [kaituoxu/Conv-TasNet][tasnet]
|
27 |
-
repository and added support for multiple audio channels.
|
28 |
|
|
|
|
|
|
|
29 |
|
30 |
-
|
31 |
-
|
32 |
-
with an average SDR of 6.
|
33 |
-
Unlike Conv-Tasnet, Demucs reacts positively to pitch/tempo shift augmentation (+0.5 SDR). However, Demucs
|
34 |
-
still suffers from leakage from other sources, in particular between the vocals and other sources, which is less of a problem
|
35 |
-
for Conv-Tasnet. When trained with 150 extra tracks, Demucs reaches an SDR of 6.8, and even surpasses the IRM oracle
|
36 |
-
for the bass source (7.6 against 7.1 for the oracle).
|
37 |
-
See [our paper][demucs_arxiv] Section 6 for more details or listen to our
|
38 |
-
[audio samples][audio] .
|
39 |
-
|
40 |
-
<p align="center">
|
41 |
-
<img src="./demucs.png" alt="Schema representing the structure of Demucs,
|
42 |
-
with a convolutional encoder, a BiLSTM, and a decoder based on transposed convolutions."
|
43 |
-
width="800px"></p>
|
44 |
-
|
45 |
-
|
46 |
-
## Important news if you are already using Demucs
|
47 |
-
|
48 |
-
See the [release notes](./docs/release.md) for more details.
|
49 |
-
|
50 |
-
- 11/05/2021: Adding support for MusDB-HQ and arbitrary wav set, for the MDX challenge. For more information
|
51 |
-
on joining the challenge with Demucs see [the Demucs MDX instructions](docs/mdx.md)
|
52 |
-
- 28/04/2021: **Demucs v2**, with extra augmentation and DiffQ based quantization.
|
53 |
-
**EVERYTHING WILL BREAK**, please restart from scratch following the instructions hereafter.
|
54 |
-
This version also adds overlap between prediction frames, with linear transition from one to the next,
|
55 |
-
which should prevent sudden changes at frame boundaries. Also, Demucs is now on PyPI, so for separation
|
56 |
-
only, installation is as easy as `pip install demucs` :)
|
57 |
-
- 13/04/2020: **Demucs released under MIT**: We are happy to release Demucs under the MIT licence.
|
58 |
-
We hope that this will broaden the impact of this research to new applications.
|
59 |
-
|
60 |
-
|
61 |
-
## Comparison with other models
|
62 |
-
|
63 |
-
An audio comparison of Demucs and Conv-Tasnet with other state-of-the-art methods such as [Wave-U-Net][waveunet], [OpenUnmix][openunmix] or
|
64 |
-
[MMDenseLSTM][mmdenselstm] is available on [the audio comparison page][audio].
|
65 |
-
We provide hereafter a summary of the different metrics presented in the paper.
|
66 |
-
You can also compare [Spleeter][spleeter], Open-Unmix, Demucs and Conv-Tasnet on one of my favorite
|
67 |
-
songs on our [soundcloud playlist][soundcloud].
|
68 |
-
|
69 |
-
### Comparison of accuracy
|
70 |
-
|
71 |
-
`Overall SDR` is the mean of the SDR for each of the 4 sources, `MOS Quality` is a rating from 1 to 5
|
72 |
-
of the naturalness and absence of artifacts given by human listeners (5 = no artifacts), `MOS Contamination`
|
73 |
-
is a rating from 1 to 5 with 5 being zero contamination by other sources. We refer the reader to our [paper][demucs_arxiv], Section 5 and 6,
|
74 |
-
for more details.
|
75 |
-
|
76 |
-
| Model | Domain | Extra data? | Overall SDR | MOS Quality | MOS Contamination |
|
77 |
-
| ------------- |-------------| -----:|------:|----:|----:|
|
78 |
-
| [Open-Unmix][openunmix] | spectrogram | no | 5.3 | 3.0 | 3.3 |
|
79 |
-
| [D3Net][d3net] | spectrogram | no | 6.0 | - | - |
|
80 |
-
| [Wave-U-Net][waveunet] | waveform | no | 3.2 | - | - |
|
81 |
-
| Demucs (this) | waveform | no | **6.3** | **3.2** | 3.3 |
|
82 |
-
| Conv-Tasnet (this) | waveform | no | 5.7 | 2.9 | **3.4** |
|
83 |
-
| Demucs (this) | waveform | 150 songs | **6.8** | - | - |
|
84 |
-
| Conv-Tasnet (this) | waveform | 150 songs | 6.3 | - | - |
|
85 |
-
| [MMDenseLSTM][mmdenselstm] | spectrogram | 804 songs | 6.0 | - | - |
|
86 |
-
| [D3Net][d3net] | spectrogram | 1.5k songs | 6.7 | - | - |
|
87 |
-
| [Spleeter][spleeter] | spectrogram | 25k songs | 5.9 | - | - |
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
## Requirements
|
92 |
-
|
93 |
-
You will need at least Python 3.7. See `requirements.txt` for requirements for separation only,
|
94 |
-
and `environment-[cpu|cuda].yml` if you want to train a new model.
|
95 |
-
|
96 |
-
### For Windows users
|
97 |
-
|
98 |
-
Everytime you see `python3`, replace it with `python.exe`. You should always run commands from the
|
99 |
-
Anaconda console.
|
100 |
-
|
101 |
-
### For musicians
|
102 |
-
|
103 |
-
If you just want to use Demucs to separate tracks, you can install it with
|
104 |
-
|
105 |
-
python3 -m pip -U install demucs
|
106 |
-
|
107 |
-
Advanced OS support are provided on the following page, **you must read the page for your OS before posting an issues**:
|
108 |
-
- **If you are using Windows:** [Windows support](docs/windows.md).
|
109 |
-
- **If you are using MAC OS X:** [Mac OS X support](docs/mac.md).
|
110 |
-
- **If you are using Linux:** [Linux support](docs/linux.md).
|
111 |
-
|
112 |
-
### For machine learning scientists
|
113 |
-
|
114 |
-
If you have anaconda installed, you can run from the root of this repository:
|
115 |
-
|
116 |
-
conda env update -f environment-cpu.yml # if you don't have GPUs
|
117 |
-
conda env update -f environment-cuda.yml # if you have GPUs
|
118 |
-
conda activate demucs
|
119 |
-
pip install -e .
|
120 |
-
|
121 |
-
This will create a `demucs` environment with all the dependencies installed.
|
122 |
-
|
123 |
-
|
124 |
-
You will also need to install [soundstretch/soundtouch](https://www.surina.net/soundtouch/soundstretch.html): on Mac OSX you can do `brew install sound-touch`,
|
125 |
-
and on Ubuntu `sudo apt-get install soundstretch`. This is used for the
|
126 |
-
pitch/tempo augmentation.
|
127 |
-
|
128 |
-
### Running in Docker
|
129 |
-
|
130 |
-
Thanks to @xserrat, there is now a Docker image definition ready for using Demucs. This can ensure all libraries are correctly installed without interfering with the host OS. See his repo [Docker Facebook Demucs](https://github.com/xserrat/docker-facebook-demucs) for more information.
|
131 |
-
|
132 |
-
|
133 |
-
### Running from Colab
|
134 |
-
|
135 |
-
I made a Colab to easily separate track with Demucs. Note that
|
136 |
-
transfer speeds with Colab are a bit slow for large media files,
|
137 |
-
but it will allow you to use Demucs without installing anything.
|
138 |
-
|
139 |
-
[Demucs on Google Colab](https://colab.research.google.com/drive/1jCegIzLIuqqcM85uVs3WCeAJiSoYq3oh?usp=sharing)
|
140 |
-
|
141 |
-
## Separating tracks
|
142 |
-
|
143 |
-
In order to try Demucs or Conv-Tasnet on your tracks, simply run from the root of this repository
|
144 |
-
|
145 |
-
```bash
|
146 |
-
python3 -m demucs.separate PATH_TO_AUDIO_FILE_1 [PATH_TO_AUDIO_FILE_2 ...] # for Demucs
|
147 |
-
python3 -m demucs.separate --mp3 PATH_TO_AUDIO_FILE_1 --mp3-bitrate BITRATE # output files saved as MP3
|
148 |
-
python3 -m demucs.separate -n tasnet PATH_TO_AUDIO_FILE_1 ... # for Conv-Tasnet
|
149 |
-
```
|
150 |
-
|
151 |
-
If you have a GPU, but you run out of memory, please add `-d cpu` to the command line. See the section hereafter for more details on the memory requirements for GPU acceleration.
|
152 |
-
|
153 |
-
Separated tracks are stored in the `separated/MODEL_NAME/TRACK_NAME` folder. There you will find four stereo wav files sampled at 44.1 kHz: `drums.wav`, `bass.wav`,
|
154 |
-
`other.wav`, `vocals.wav` (or `.mp3` if you used the `--mp3` option).
|
155 |
-
|
156 |
-
All audio formats supported by `torchaudio` can be processed (i.e. wav, mp3, flac, ogg/vorbis etc.).
|
157 |
-
Audio is resampled on the fly if necessary.
|
158 |
-
The output will be a wave file, either in int16 format or float32 (if `--float32` is passed).
|
159 |
-
You can pass `--mp3` to save as mp3 instead, and set the bitrate with `--mp3-bitrate` (default is 320kbps).
|
160 |
-
|
161 |
-
Other pre-trained models can be selected with the `-n` flag.
|
162 |
-
The list of pre-trained models is:
|
163 |
-
- `demucs`: Demucs trained on MusDB,
|
164 |
-
- `demucs_quantized`: Quantized Demucs with [diffq](https://github.com/facebookresearch/diffq),
|
165 |
-
this is much smaller (150MB instead of 1GB) and quality should be exactly the same. Let me know if you disagree.
|
166 |
-
As a result, this is the one used by default.
|
167 |
-
- `demucs_extra`: Demucs trained with extra training data,
|
168 |
-
- `demucs48_hq`: Demucs with 48 initial hidden channels, trained on [MusDB-HQ](https://zenodo.org/record/3338373),
|
169 |
-
used as a baseline for the [Music Demixing Challenge 2021](https://www.aicrowd.com/challenges/music-demixing-challenge-ismir-2021),
|
170 |
-
- `tasnet`: Conv-Tasnet trained on MusDB,
|
171 |
-
- `tasnet_extra`: Conv-Tasnet trained with extra training data.
|
172 |
-
|
173 |
-
|
174 |
-
The `--shifts=SHIFTS` performs multiple predictions with random shifts (a.k.a the *shift trick*) of the input and average them. This makes prediction `SHIFTS` times
|
175 |
-
slower but improves the accuracy of Demucs by 0.2 points of SDR.
|
176 |
-
It has limited impact on Conv-Tasnet as the model is by nature almost time equivariant.
|
177 |
-
The value of 10 was used on the original paper, although 5 yields mostly the same gain.
|
178 |
-
It is deactivated by default but it does make vocals a bit smoother.
|
179 |
-
|
180 |
-
The `--overlap` option controls the amount of overlap between prediction windows (for Demucs one window is 10 seconds).
|
181 |
-
Default is 0.25 (i.e. 25%) which is probably fine.
|
182 |
-
|
183 |
-
|
184 |
-
### Memory requirements for GPU acceleration
|
185 |
-
|
186 |
-
If you want to use GPU acceleration, you will need at least 8GB of RAM on your GPU for `demucs` and 4GB for `tasnet`. Sorry, the code for demucs is not super optimized for memory! If you do not have enough memory on your GPU, simply add `-d cpu` to the command line to use the CPU. With Demucs, processing time should be roughly equal to the duration of the track.
|
187 |
-
|
188 |
-
|
189 |
-
## Examining the results from the paper experiments
|
190 |
-
|
191 |
-
The metrics for our experiments are stored in the `results` folder. In particular
|
192 |
-
`museval` json evaluations are stored in `results/evals/EXPERIMENT NAME/results`.
|
193 |
-
You can aggregate and display the results using
|
194 |
-
```bash
|
195 |
-
python3 valid_table.py -p # show valid loss, aggregated with multiple random seeds
|
196 |
-
python3 result_table.py -p # show SDR on test set, aggregated with multiple random seeds
|
197 |
-
python3 result_table.py -p SIR # also SAR, ISR, show other metrics
|
198 |
-
```
|
199 |
-
The `std` column shows the standard deviation divided by the square root of the number of runs.
|
200 |
-
|
201 |
-
## Training Demucs and evaluating on the MusDB dataset
|
202 |
-
|
203 |
-
If you want to train Demucs from scratch, you will need a copy of the MusDB dataset.
|
204 |
-
It can be obtained on the [MusDB website][musdb].
|
205 |
-
To start training on a single GPU or CPU, use:
|
206 |
-
```bash
|
207 |
-
python3 -m demucs -b 4 --musdb MUSDB_PATH # Demucs
|
208 |
-
python3 -m demucs -b 4 --musdb MUSDB_PATH --tasnet --samples=80000 --split_valid # Conv-Tasnet
|
209 |
-
```
|
210 |
-
The `-b 4` flag will set the batch size to 4. The default is 4 and will crash on a single GPU.
|
211 |
-
Demucs was trained on 8 V100 with 32GB of RAM.
|
212 |
-
The default parameters (batch size, number of channels etc)
|
213 |
-
might not be suitable for 16GB GPUs.
|
214 |
-
To train on all available GPUs, use:
|
215 |
-
```bash
|
216 |
-
python3 run.py --musdb MUSDB_PATH [EXTRA_FLAGS]
|
217 |
-
```
|
218 |
-
|
219 |
-
This will launch one process per GPU and report the output of the first one. When interrupting
|
220 |
-
such a run, it is possible some of the children processes are not killed properly, be mindful of that.
|
221 |
-
If you want to use only some of the available GPUs, export the `CUDA_VISIBLE_DEVICES` variable to
|
222 |
-
select those.
|
223 |
-
|
224 |
-
To see all the possible options, use `python3 -m demucs --help`.
|
225 |
-
|
226 |
-
|
227 |
-
### MusDB HQ
|
228 |
-
|
229 |
-
To train on MusDB HQ, use the following flags:
|
230 |
-
|
231 |
-
```bash
|
232 |
-
python3 -m demucs -b 4 --musdb MUSDB_HQ_PATH --is_wav [...]
|
233 |
-
```
|
234 |
-
|
235 |
-
### Custom wav dataset
|
236 |
-
|
237 |
-
You can trained on a custom wav dataset using the following command.
|
238 |
-
At the moment, you still need to pass the MusDB path for evaluation, and the model
|
239 |
-
must use the standard sources (bass, drums, other, vocals). However, it should be relatively
|
240 |
-
easy to fork the code to support different patterns.
|
241 |
-
|
242 |
-
```bash
|
243 |
-
python3 -m demucs -b 4 --wav PATH_TO_WAV_DATASET [...]
|
244 |
-
```
|
245 |
-
|
246 |
-
The folder `PATH_TO_WAV_DATASET` should contain two sub-directories : `train` and `valid`. Each of those
|
247 |
-
should contain one folder per track. Each track folder must contain one file for each source (`drums.wav`, `bass.wav`, `other.wav`, `vocals.wav`) and one file for the mixture (`mixture.wav`).
|
248 |
-
|
249 |
-
By default, the custom wav dataset will replace MusDB. To concatenate it with MusDB, pass `--concat` (if you are using musdbhq, dont forget to pass `--is_wav`).
|
250 |
-
|
251 |
-
### Fine tuning
|
252 |
-
|
253 |
-
You can fine tune from one of the pre-trained models listed in the [Separating tracks Section](#separating-tracks)
|
254 |
-
by passing the `--init=PRETRAINED_NAME`, i.e. for Demucs or ConvTasnet:
|
255 |
-
|
256 |
-
```bash
|
257 |
-
python3 -m demucs -b 4 --musdb MUSDB_PATH --init demucs # Demucs
|
258 |
-
python3 -m demucs -b 4 --musdb MUSDB_PATH --tasnet --samples=80000 --split_valid --init tasnet # Conv-Tasnet
|
259 |
-
```
|
260 |
-
|
261 |
-
### About checkpointing
|
262 |
-
|
263 |
-
Demucs will automatically generate an experiment name from the command line flags you provided.
|
264 |
-
It will checkpoint after every epoch. If a checkpoint already exist for the combination of flags
|
265 |
-
you provided, it will be automatically used. In order to ignore/delete a previous checkpoint,
|
266 |
-
run with the `-R` flag.
|
267 |
-
The optimizer state, the latest model and the best model on valid are stored. At the end of each
|
268 |
-
epoch, the checkpoint will erase the one from the previous epoch.
|
269 |
-
By default, checkpoints are stored in the `./checkpoints` folder. This can be changed using the
|
270 |
-
`--checkpoints CHECKPOINT_FOLDER` flag.
|
271 |
-
|
272 |
-
Not all options will impact the name of the experiment. For instance `--workers` is not
|
273 |
-
shown in the name, therefore, changing this parameter will not impact the checkpoint file
|
274 |
-
used. Refer to [parser.py](demucs/parser.py) for more details.
|
275 |
-
|
276 |
-
|
277 |
-
### Test set evaluations
|
278 |
-
|
279 |
-
Test set evaluations computed with [museval][museval] will be stored under
|
280 |
-
`evals/EXPERIMENT NAME/results`. The experiment name
|
281 |
-
is the first thing printed when running `python3 run.py` or `python3 -m demucs`. If you used
|
282 |
-
the flag `--save`, there will also be a folder `evals/EXPERIMENT NAME/wavs` containing
|
283 |
-
all the extracted waveforms.
|
284 |
-
|
285 |
-
|
286 |
-
#### Running on a cluster
|
287 |
-
|
288 |
-
If you have a cluster available with Slurm, you can set the `run_slurm.py` as the target of a
|
289 |
-
slurm job, using as many nodes as you want and a single task per node. `run_slurm.py` will
|
290 |
-
create one process per GPU and run in a distributed manner. Multinode training is supported.
|
291 |
-
|
292 |
-
### Extracting Raw audio for faster loading
|
293 |
-
|
294 |
-
We observed that loading from compressed mp4 audio lead to unreliable speed, sometimes reducing by
|
295 |
-
a factor of 2 the number of iterations per second. It is possible to extract all data
|
296 |
-
to raw PCM f32e format. If you wish to store the raw data under `RAW_PATH`, run the following
|
297 |
-
command first:
|
298 |
-
|
299 |
-
```bash
|
300 |
-
python3 -m demucs.raw [--workers=10] MUSDB_PATH RAW_PATH
|
301 |
-
```
|
302 |
-
|
303 |
-
You can then train using the `--raw RAW_PATH` flag, for instance:
|
304 |
-
```bash
|
305 |
-
python3 run.py --raw RAW_PATH --musdb MUSDB_PATH
|
306 |
-
```
|
307 |
-
You still need to provide the path to the MusDB dataset as we always load the test set
|
308 |
-
from the original MusDB.
|
309 |
-
|
310 |
-
|
311 |
-
### Results reproduction
|
312 |
-
To reproduce the performance of the main Demucs model in our paper:
|
313 |
-
```bash
|
314 |
-
# Extract raw waveforms. This is optional
|
315 |
-
python3 -m demucs.data MUSDB_PATH RAW_PATH
|
316 |
-
export DEMUCS_RAW=RAW_PATH
|
317 |
-
# Train models with default parameters and multiple seeds
|
318 |
-
python3 run.py --seed 42 # for Demucs
|
319 |
-
python3 run.py --seed 42 --tasnet --X=10 --samples=80000 --epochs=180 --split_valid # for Conv-Tasnet
|
320 |
-
# Repeat for --seed = 43, 44, 45 and 46
|
321 |
-
```
|
322 |
-
|
323 |
-
You can visualize the results aggregated on multiple seeds using
|
324 |
-
```bash
|
325 |
-
python3 valid_table.py # compare validation losses
|
326 |
-
python3 result_table.py # compare test SDR
|
327 |
-
python3 result_table.py SIR # compare test SIR, also available ISR, and SAR
|
328 |
-
```
|
329 |
-
|
330 |
-
You can look at our exploration file [dora.py](dora.py) to see the exact flags
|
331 |
-
for all experiments (grid search and ablation study). If you have a Slurm cluster,
|
332 |
-
you can also try adapting it to run on your own.
|
333 |
-
|
334 |
-
|
335 |
-
### Environment variables
|
336 |
-
|
337 |
-
If you do not want to always specify the path to MUSDB, you can export the following variables:
|
338 |
-
```bash
|
339 |
-
export DEMUCS_MUSDB=PATH TO MUSDB
|
340 |
-
# Optionally, if you extracted raw pcm data
|
341 |
-
# export DEMUCS_RAW=PATH TO RAW PCM
|
342 |
-
```
|
343 |
-
|
344 |
-
## How to cite
|
345 |
-
|
346 |
-
```
|
347 |
-
@article{defossez2019music,
|
348 |
-
title={Music Source Separation in the Waveform Domain},
|
349 |
-
author={D{\'e}fossez, Alexandre and Usunier, Nicolas and Bottou, L{\'e}on and Bach, Francis},
|
350 |
-
journal={arXiv preprint arXiv:1911.13254},
|
351 |
-
year={2019}
|
352 |
-
}
|
353 |
-
```
|
354 |
-
|
355 |
-
## License
|
356 |
-
|
357 |
-
Demucs is released under the MIT license as found in the [LICENSE](LICENSE) file.
|
358 |
-
|
359 |
-
The file `demucs/tasnet.py` is adapted from the [kaituoxu/Conv-TasNet][tasnet] repository.
|
360 |
-
It was originally released under the MIT License updated to support multiple audio channels.
|
361 |
-
|
362 |
-
|
363 |
-
[nsynth]: https://magenta.tensorflow.org/datasets/nsynth
|
364 |
-
[sing_nips]: https://research.fb.com/publications/sing-symbol-to-instrument-neural-generator
|
365 |
-
[sing]: https://github.com/facebookresearch/SING
|
366 |
-
[waveunet]: https://github.com/f90/Wave-U-Net
|
367 |
-
[musdb]: https://sigsep.github.io/datasets/musdb.html
|
368 |
-
[museval]: https://github.com/sigsep/sigsep-mus-eval/
|
369 |
-
[openunmix]: https://github.com/sigsep/open-unmix-pytorch
|
370 |
-
[mmdenselstm]: https://arxiv.org/abs/1805.02410
|
371 |
-
[demucs_arxiv]: https://hal.archives-ouvertes.fr/hal-02379796/document
|
372 |
-
[musevalpth]: museval_torch.py
|
373 |
-
[tasnet]: https://github.com/kaituoxu/Conv-TasNet
|
374 |
-
[audio]: https://ai.honu.io/papers/demucs/index.html
|
375 |
-
[spleeter]: https://github.com/deezer/spleeter
|
376 |
-
[soundcloud]: https://soundcloud.com/voyageri/sets/source-separation-in-the-waveform-domain
|
377 |
-
[original_demucs]: https://github.com/facebookresearch/demucs/tree/dcee007a350467abc3295dfe267034460f9ffa4e
|
378 |
-
[diffq]: https://github.com/facebookresearch/diffq
|
379 |
-
[d3net]: https://arxiv.org/abs/2010.01733
|
|
|
1 |
+
---
|
2 |
+
title: Demucs
|
3 |
+
emoji: ⚡
|
4 |
+
colorFrom: pink
|
5 |
+
colorTo: indigo
|
6 |
+
sdk: gradio
|
7 |
+
app_file: app.py
|
8 |
+
pinned: false
|
9 |
+
---
|
10 |
|
11 |
+
# Configuration
|
|
|
12 |
|
13 |
+
`title`: _string_
|
14 |
+
Display title for the Space
|
15 |
|
16 |
+
`emoji`: _string_
|
17 |
+
Space emoji (emoji-only character allowed)
|
18 |
|
19 |
+
`colorFrom`: _string_
|
20 |
+
Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
|
|
|
21 |
|
22 |
+
`colorTo`: _string_
|
23 |
+
Color for Thumbnail gradient (red, yellow, green, blue, indigo, purple, pink, gray)
|
|
|
|
|
24 |
|
25 |
+
`sdk`: _string_
|
26 |
+
Can be either `gradio` or `streamlit`
|
|
|
27 |
|
28 |
+
`sdk_version` : _string_
|
29 |
+
Only applicable for `streamlit` SDK.
|
30 |
+
See [doc](https://hf.co/docs/hub/spaces) for more info on supported versions.
|
|
|
|
|
31 |
|
32 |
+
`app_file`: _string_
|
33 |
+
Path to your main application file (which contains either `gradio` or `streamlit` Python code).
|
34 |
+
Path is relative to the root of the repository.
|
35 |
|
36 |
+
`pinned`: _boolean_
|
37 |
+
Whether the Space stays on top of your list.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.py
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import gradio as gr
|
3 |
+
from scipy.io.wavfile import write
|
4 |
+
|
5 |
+
|
6 |
+
def inference(audio):
|
7 |
+
os.makedirs("out", exist_ok=True)
|
8 |
+
write('test.wav', audio[0], audio[1])
|
9 |
+
os.system("python3 -m demucs.separate -n mdx_extra_q -d cpu test.wav -o out")
|
10 |
+
return "./out/mdx_extra_q/test/vocals.wav","./out/mdx_extra_q/test/bass.wav",\
|
11 |
+
"./out/mdx_extra_q/test/drums.wav","./out/mdx_extra_q/test/other.wav"
|
12 |
+
|
13 |
+
title = "Demucs"
|
14 |
+
description = "Gradio demo for Demucs: Music Source Separation in the Waveform Domain. To use it, simply upload your audio, or click one of the examples to load them. Read more at the links below."
|
15 |
+
article = "<p style='text-align: center'><a href='https://arxiv.org/abs/1911.13254' target='_blank'>Music Source Separation in the Waveform Domain</a> | <a href='https://github.com/facebookresearch/demucs' target='_blank'>Github Repo</a></p>"
|
16 |
+
|
17 |
+
examples=[['test.mp3']]
|
18 |
+
gr.Interface(
|
19 |
+
inference,
|
20 |
+
gr.inputs.Audio(type="numpy", label="Input"),
|
21 |
+
[gr.outputs.Audio(type="file", label="Vocals"),gr.outputs.Audio(type="file", label="Bass"),gr.outputs.Audio(type="file", label="Drums"),gr.outputs.Audio(type="file", label="Other")],
|
22 |
+
title=title,
|
23 |
+
description=description,
|
24 |
+
article=article,
|
25 |
+
examples=examples
|
26 |
+
).launch(enable_queue=True)
|
baselines/.DS_Store
DELETED
Binary file (6.15 kB)
|
|
baselines/IRM2/test/AM Contra - Heart Peripheral.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:7a1e79ff415009526e480beba3666e14b163fe33c23dab4040e2077e25c61bbe
|
3 |
-
size 26828
|
|
|
|
|
|
|
|
baselines/IRM2/test/Al James - Schoolboy Facination.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:8caae5351b7dd0bc7fce2ee4cc915e291ed4636709dfbaf19962aee0f0a618ab
|
3 |
-
size 24865
|
|
|
|
|
|
|
|
baselines/IRM2/test/Angels In Amplifiers - I'm Alright.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:ed9d8a341ceb370fa8e8b7cc6f336def7efa00941edac1cb834f573fd5c82253
|
3 |
-
size 23052
|
|
|
|
|
|
|
|
baselines/IRM2/test/Arise - Run Run Run.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:9066cfe82dc69614fae9338dcfdef5a65f7e2ebdb7dadadb6d27df321d6c3005
|
3 |
-
size 25900
|
|
|
|
|
|
|
|
baselines/IRM2/test/BKS - Bulldozer.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:9a54943bbd84ca3474a1bf2985d5c34796b1eebe8291f9d84807b1b81695cf24
|
3 |
-
size 42911
|
|
|
|
|
|
|
|
baselines/IRM2/test/BKS - Too Much.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:57c5c90e3cbb955ce0210cc6d5aaad3af84ff23493aea10e6c30f189fc364c87
|
3 |
-
size 21123
|
|
|
|
|
|
|
|
baselines/IRM2/test/Ben Carrigan - We'll Talk About It All Tonight.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:ed5db465dd93085a257b3044c55c2381ffd60845067ed47f0d6ad6d9b1061d10
|
3 |
-
size 20579
|
|
|
|
|
|
|
|
baselines/IRM2/test/Bobby Nobody - Stitch Up.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:74f77a2bf52249b78c23a9be577de79d9168d95cf00fb3a674468ec35342f5ba
|
3 |
-
size 23353
|
|
|
|
|
|
|
|
baselines/IRM2/test/Buitraker - Revo X.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:feee80b8fa70d36eb2ef8a7de45c087db7cec4b6b0145218d14a4be99ed9f785
|
3 |
-
size 28203
|
|
|
|
|
|
|
|
baselines/IRM2/test/Carlos Gonzalez - A Place For Us.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:3aaadf03103b92715015653ec7d5af59db586dc8d45c4ced2b2ef5e4db4f8e83
|
3 |
-
size 31961
|
|
|
|
|
|
|
|
baselines/IRM2/test/Cristina Vane - So Easy.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:8470eebddeb221bf2702c162cc7f19c2d5e7f8eb14d6520ad1e060165c7773b6
|
3 |
-
size 28275
|
|
|
|
|
|
|
|
baselines/IRM2/test/Detsky Sad - Walkie Talkie.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:bf8778f15c4ad7bb3fa30428ca2d780be40b22f3268227d01e5ae803afda180c
|
3 |
-
size 11024
|
|
|
|
|
|
|
|
baselines/IRM2/test/Enda Reilly - Cur An Long Ag Seol.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:14e7d069a2840224a8876fdc7f328ca52a865e6540a2939c3c2aef0ccd6fe7df
|
3 |
-
size 21139
|
|
|
|
|
|
|
|
baselines/IRM2/test/Forkupines - Semantics.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:ba47a499b526cde808fbb10ca2858886c4606f1bccee921ae54721091573a80f
|
3 |
-
size 21237
|
|
|
|
|
|
|
|
baselines/IRM2/test/Georgia Wonder - Siren.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:cca85c851447e94539bfdefe0b00a6fcb4746e34197058b2dc8b4feb46b193a1
|
3 |
-
size 36791
|
|
|
|
|
|
|
|
baselines/IRM2/test/Girls Under Glass - We Feel Alright.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:9a7e24e0628f44ee1cc774e2c454ac4cea0a9c63064348af6e33225505c2f1d2
|
3 |
-
size 21935
|
|
|
|
|
|
|
|
baselines/IRM2/test/Hollow Ground - Ill Fate.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:8f37c5bc36becaed3d9649b36e6d68b8f4a86960b4103fcc2f5710fa772dae37
|
3 |
-
size 12330
|
|
|
|
|
|
|
|
baselines/IRM2/test/James Elder & Mark M Thompson - The English Actor.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:09faaffbfd9825a3104c935ac27da722700c895f1c5c095b6f9570ed551a189a
|
3 |
-
size 20687
|
|
|
|
|
|
|
|
baselines/IRM2/test/Juliet's Rescue - Heartbeats.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:a5ec942c2019fabba64dbbcad131b7ac986f126d87fdb9ebbd3c8d139217d158
|
3 |
-
size 27498
|
|
|
|
|
|
|
|
baselines/IRM2/test/Little Chicago's Finest - My Own.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:fdaf06d216ad224f0c78ca9163f190311157718618e17e462bd781d1b36c3e25
|
3 |
-
size 31610
|
|
|
|
|
|
|
|
baselines/IRM2/test/Louis Cressy Band - Good Time.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:f7191c053ebc148d9ca86e6583cb0ecafaa773e4e0107a5d7c0915bab034c03e
|
3 |
-
size 21264
|
|
|
|
|
|
|
|
baselines/IRM2/test/Lyndsey Ollard - Catching Up.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:a54bda98c9b061c4c994b173df4b1c895de56475484cb29973e2a86c5133699b
|
3 |
-
size 25709
|
|
|
|
|
|
|
|
baselines/IRM2/test/M.E.R.C. Music - Knockout.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:1e81ed157dec77de057bbb712ad78bf574305d8d2ef4d24e84f2a8ca69ce88ee
|
3 |
-
size 26605
|
|
|
|
|
|
|
|
baselines/IRM2/test/Moosmusic - Big Dummy Shake.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:164e3f93976f698750757c21dd5c77e932c90b7f5cbccae6c44a976abc86ff86
|
3 |
-
size 22563
|
|
|
|
|
|
|
|
baselines/IRM2/test/Motor Tapes - Shore.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:1938098d0212e9afdff2a0371887b66842718fdca141ce9c017ceadc9e2ef822
|
3 |
-
size 25089
|
|
|
|
|
|
|
|
baselines/IRM2/test/Mu - Too Bright.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:68ca54ac8985fbad1c47137ced2e302831bb9c5b35ddb2c6c45ec4f8848ea3bf
|
3 |
-
size 22522
|
|
|
|
|
|
|
|
baselines/IRM2/test/Nerve 9 - Pray For The Rain.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:829f8efcda9469b277961892dff22d4b569a3e57f7cc29bc773e686d9a23455b
|
3 |
-
size 32881
|
|
|
|
|
|
|
|
baselines/IRM2/test/PR - Happy Daze.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:e0d41b2eb0aff25e1e1ba1e884a50257bfb1e87905bc396a2cd2cf6eda0f5e7d
|
3 |
-
size 21052
|
|
|
|
|
|
|
|
baselines/IRM2/test/PR - Oh No.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:cd6a60a64165c2f4f427f041c6955a18776858201afc293c9eb50f92b82369bf
|
3 |
-
size 9804
|
|
|
|
|
|
|
|
baselines/IRM2/test/Punkdisco - Oral Hygiene.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:4186d9e9b295ffc6ef41e39534d1109d19b0182cb92288b7a7abdca8afb1aaff
|
3 |
-
size 19114
|
|
|
|
|
|
|
|
baselines/IRM2/test/Raft Monk - Tiring.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:535a886ce8cdf756f489fc36cf7d73298d09839e241121f5039046c96be1d20b
|
3 |
-
size 23263
|
|
|
|
|
|
|
|
baselines/IRM2/test/Sambasevam Shanmugam - Kaathaadi.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:648a338396f76e002c61f3bd10323cebc155a7675e630ac6dbee8335fcdf2828
|
3 |
-
size 23183
|
|
|
|
|
|
|
|
baselines/IRM2/test/Secretariat - Borderline.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:ac1a105faf4ee9bb3ec09273d21aeadf5de7752cb0eb0ca292f673210d77bfd3
|
3 |
-
size 27299
|
|
|
|
|
|
|
|
baselines/IRM2/test/Secretariat - Over The Top.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:2e1a432abaa8b5e5bf6fdc6df892706e047dc5bd96e2e2da874dca5f14684441
|
3 |
-
size 21642
|
|
|
|
|
|
|
|
baselines/IRM2/test/Side Effects Project - Sing With Me.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:594dc701ab7ce759ff1006e8947688f1609e9bc87a18aba638b83432d9e2d32e
|
3 |
-
size 28539
|
|
|
|
|
|
|
|
baselines/IRM2/test/Signe Jakobsen - What Have You Done To Me.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:c9347bd26e385f06a0f7350534a7f205245765e6d3eb145922cdb4cf3de4f0f7
|
3 |
-
size 22512
|
|
|
|
|
|
|
|
baselines/IRM2/test/Skelpolu - Resurrection.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:494b2d48e6d33b2167f542cc1b63c45377514f126245fd634d270f34495f8251
|
3 |
-
size 14837
|
|
|
|
|
|
|
|
baselines/IRM2/test/Speak Softly - Broken Man.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:8e049a84e184aed110458ca26ac929ddc79caef637dfa8decdcb4d438afb4232
|
3 |
-
size 25457
|
|
|
|
|
|
|
|
baselines/IRM2/test/Speak Softly - Like Horses.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:a29311792a22e9e15c970d8e9a84932e54ed969d0efc2dcd8ba188e409924a08
|
3 |
-
size 27657
|
|
|
|
|
|
|
|
baselines/IRM2/test/The Doppler Shift - Atrophy.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:3beaba378e7e0c92d1204fcd7712aeecc09c8ee63c3e56b45e9357d64ae426a1
|
3 |
-
size 42460
|
|
|
|
|
|
|
|
baselines/IRM2/test/The Easton Ellises (Baumi) - SDRNR.json.gz
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:d6b5f83f1984d9440a4e5ceb5c68d80dc84d887861da24a9dc96017aa2a399f5
|
3 |
-
size 29888
|
|
|
|
|
|
|
|