Skip to main content

波形域中的音乐源分离。

项目描述

Demucs 音乐源分离

支持乌克兰 测试徽章 短绒徽章

这是 Demucs (v3) 的第三个版本,具有混合源分离功能。 仅适用于波形 Demucs (v2): Go this commit。如果您遇到问题并希望恢复旧的 Demucs,请填写问题,然后您可以使用 git checkout v2.

我们提供了用于音乐源分离的 Hybrid Demucs 实现,在MusDB HQ数据集和内部额外训练数据上进行了训练。他们可以将鼓、贝司和人声与其他人分开,并在 2021 年索尼音乐 DemiXing 挑战赛 (MDX)中获得第一名

Demucs 基于受Wave-U-Net启发的 U-Net 卷积架构。最新版本具有混合频谱图/波形分离,以及压缩残差分支、局部注意力和奇异值正则化。查看我们的论文Hybrid Spectrogram and Waveform Source Separation 了解更多详情。据我们所知,Demucs 是目前唯一支持真正端到端混合模型训练的模型,在域之间共享信息,而不是训练后模型混合。

仅在 MusDB HQ 上训练时,Hybrid Demucs 在 MDX 测试集上的 SDR 为 7.33,在 200 个额外训练轨道上达到 8.11 dB。尽管KUIELAB-MDX-Net在人声和其他伴奏方面表现更好,但它对于鼓和贝司提取特别有效。

表示 Demucs 结构的模式,具有共享核心的双 U-Net 结构,一个分支用于时域,一个分支用于谱域。

如果您已经在使用 Demucs 的重要消息

有关更多详细信息,请参阅发行说明

  • 24/02/2022:发布 v3.0.4:分为两个词干(即卡拉 OK 模式)。导出为 float32 或 int24。
  • 2021 年 12 月 17 日:发布 v3.0.3:错误修复(感谢 @keunwoochoi)、GPU 上的内存大幅减少(感谢 @famzah)和 CPU 上的新多核评估(-j标志)。
  • 2021 年 12 月 11 日:发布带有混合域分离的Demucs v3 。对所有来源的重大改进。这是赢得索尼 MDX 挑战的模型。
  • 11/05/2021:为 MDX 挑战添加对 MusDB-HQ 和任意 wav 集的支持。有关使用 Demucs 加入挑战的更多信息,请参阅Demucs MDX 说明
  • 28/04/2021:Demucs v2,具有额外的增强和基于 DiffQ 的量化。 一切都会中断,请按照以下说明从头开始。这个版本还增加了预测帧之间的重叠,从一个到下一个的线性过渡,这应该可以防止帧边界的突然变化。此外,Demucs 现在在 PyPI 上,因此仅用于分离,安装就像pip install demucs:)
  • 2020 年 4 月 13 日:在 MIT下发布Demucs :我们很高兴在 MIT 许可下发布 Demucs。我们希望这将扩大这项研究对新应用的影响。

与其他型号的比较

我们在下文中提供了本文中提出的不同指标的摘要。您还可以比较 Hybrid Demucs (v3)、KUIELAB-MDX-NetSpleeter、Open-Unmix、Demucs (v1) 和 Conv-Tasnet 在我的soundcloud 播放列表中我最喜欢的歌曲之一。

精度比较

Overall SDR是 4 个源中每一个的 SDR 的平均值,MOS Quality是对人类听众给出的自然度和无伪影的 1 到 5 评级(5 = 无伪影),MOS Contamination 是从 1 到 5 的评级,其中 5 是零污染由其他来源。我们向读者推荐我们的论文,了解更多详细信息。

模型 领域 额外数据? 总体特别提款权 MOS品质 MOS 污染
Wave-U-Net 波形 3.2 - -
开放混合 频谱图 5.3 - -
D3Net 频谱图 6.0 - -
转换-Tasnet 波形 5.7 -
德穆克斯 (v2) 波形 6.3 2.37 2.36
ResUNet解耦+ 频谱图 6.7 - -
KUIELAB-MDX-Net 杂交种 7.5 2.86 2.55
混合 Demucs (v3) 杂交种 7.7 2.83 3.04
MMDenseLSTM 频谱图 804 首歌曲 6.0 - -
D3Net 频谱图 1.5k 首歌曲 6.7 - -
斯普利特 频谱图 25k 首歌曲 5.9 - -

要求

你至少需要 Python 3.7。如果您想训练新模型,请参阅requirements_minimal.txt仅分离要求和environment-[cpu|cuda].yml(或)。requirements.txt

对于 Windows 用户

每次看到python3都换成python.exe. 您应该始终从 Anaconda 控制台运行命令。

对于音乐家

如果你只是想使用 Demucs 来分隔轨道,你可以安装它

python3 -m pip install -U demucs

对于最前沿的版本,您可以使用直接从此 repo 安装

python3 -m pip install -U git+https://github.com/facebookresearch/demucs#egg=demucs

以下页面提供了高级操作系统支持,您必须在发布问题之前阅读适用于您的操作系统的页面

对于机器学习科学家

如果你安装了 anaconda,你可以从这个存储库的根目录运行:

conda env update -f environment-cpu.yml  # if you don't have GPUs
conda env update -f environment-cuda.yml # if you have GPUs
conda activate demucs
pip install -e .

这将创建一个demucs安装了所有依赖项的环境。

您还需要安装soundstretch/soundtouch:在 Mac OSX 上可以安装brew install sound-touch,在 Ubuntu 上安装sudo apt-get install soundstretch。这用于音高/速度增强。

在 Docker 中运行

感谢@xserrat,现在有一个可以使用 Demucs 的 Docker 映像定义。这可以确保正确安装所有库而不干扰主机操作系统。有关更多信息,请参阅他的 repo Docker Facebook Demucs

从 Colab 运行

我制作了一个 Colab 来轻松地与 Demucs 分开音轨。请注意,对于大型媒体文件,使用 Colab 的传输速度有点慢,但它允许您在不安装任何东西的情况下使用 Demucs。

Google Colab 上的 Demucs

网络演示

使用Gradio集成到Huggingface Spaces中。见演示:拥抱面部空间

图形界面

@CarlGao4 发布了 Demucs 的 GUI:CarlGao4/Demucs-Gui可在此处下载适用于 Windows 和 macOS 的下载。使用FossHub 镜像加快下载速度。

@Anjok07 在支持 Demucs的UVR(Ultimate Vocal Remover)中提供了一个自包含的 GUI 。

其他供应商

Audiostrip 在其网站https://audiostrip.co.uk/上提供与 Demucs 的免费在线分离。 MVSep还提供免费的在线分离,选择Demucs3 model B最好的质量。

Spleeter.io 在其网站https://www.spleeter.io/demucs上提供与 Demucs 的免费在线分离。

分离轨道

为了尝试 Demucs,您可以从任何文件夹运行(只要您正确安装它)

demucs PATH_TO_AUDIO_FILE_1 [PATH_TO_AUDIO_FILE_2 ...]   # for Demucs
# If you used `pip install --user` you might need to replace demucs with python3 -m demucs
python3 -m demucs --mp3 --mp3-bitrate BITRATE PATH_TO_AUDIO_FILE_1  # output files saved as MP3
# If your filename contain spaces don't forget to quote it !!!
demucs "my music/my favorite track.mp3"
# You can select different models with `-n` mdx_q is the quantized model, smaller but maybe a bit less accurate.
demucs -n mdx_q myfile.mp3
# If you only want to separate vocals out of an audio, use `--two-stems=vocal` (You can also set to drums or bass)
demucs --two-stems=vocals myfile.mp3

如果您有 GPU,但内存不足,请使用--segment SEGMENT以减少每个拆分的长度。SEGMENT应改为整数。个人推荐不少于10个(数字越大,需要的内存越多,但质量可能会提高)。创建环境变量PYTORCH_NO_CUDA_MEMORY_CACHING=1也很有帮助。如果这仍然没有帮助,请添加-d cpu到命令行。有关 GPU 加速的内存要求的更多详细信息,请参阅下文部分。

分开的曲目存储在separated/MODEL_NAME/TRACK_NAME文件夹中。在那里,您会发现四个以 44.1 kHz 采样的立体声 wav 文件:drums.wavbass.wavother.wavvocals.wav(或者.mp3如果您使用了该--mp3选项)。

可以处理所有支持的音频格式torchaudio(即 Linux/Mac OS X 上的 wav、mp3、flac、ogg/vorbis 等)。在 Windows 上,torchaudio支持有限,所以我们依赖ffmpeg,它应该支持几乎任何东西。如有必要,音频会即时重新采样。输出将是一个编码为 int16 的波形文件。您可以使用 保存为 float32 wav 文件--float32,或使用 .保存为 24 位整数 wav文件--int24。您可以--mp3改为保存为 mp3,并设置比特率--mp3-bitrate(默认为 320kbps)。

输出可能需要剪辑,特别是由于一些分离伪影。Demucs 将自动重新调整每个输出主干,以避免削波。然而,这可能会破坏茎之间的相对体积。相反,如果您更喜欢硬剪辑,请通过--clip-mode clamp. 您还可以尝试减少输入混合物的体积,然后再将其送入 Demucs。

可以使用-n标志选择其他预训练模型。预训练模型列表如下:

  • mdx:仅在 MusDB HQ 上训练,在MDX挑战赛 A 赛道上获胜。
  • mdx_extra:使用额外的训练数据(包括 MusDB 测试集)进行训练,在MDX挑战的赛道 B 上排名第二。
  • mdx_q, mdx_extra_q: 以前模型的量化版本。较小的下载和存储,但质量可能会稍差。mdx_extra_q是使用的默认模型。
  • SIG:模型动物园SIG中的单个模型在哪里。

更快的分离:如果你想要更快的分离,特别是如果你没有 GPU,你可以使用-n 83fc094f例如使用单个模型,而不是用于比赛的 4 个模型的包。

--two-stems=vocals选项允许将人声与其他人声分开(例如卡拉 OK 模式)。 vocals可以更改为所选模型中的任何源。这将在完全分离混合后混合文件,因此这不会更快或使用更少的内存。

使用输入的随机移位(又名移位技巧--shifts=SHIFTS)执行多个预测并将它们平均。这使得预测时间变慢。除非你有 GPU,否则不要使用它。SHIFTS

--overlap选项控制预测窗口之间的重叠量(对于 Demucs,一个窗口是 10 秒)。默认值为 0.25(即 25%),这可能没问题。

-j标志允许指定多个并行作业(例如demucs -j 2 myfile.mp3)。这将乘以相同的 RAM 使用量,所以要小心!

GPU 加速的内存要求

如果您想使用 GPU 加速,您的 GPU 上至少需要 3GB 的 RAM 才能用于demucs. 但是,如果使用默认参数,则需要大约 7GB 的 RAM。添加--segment SEGMENT以更改每个拆分的大小。如果您只有 3GB 内存,请将 SEGMENT 设置为 8(如果此参数太小,质量可能会更差)。创建环境变量PYTORCH_NO_CUDA_MEMORY_CACHING=1可以帮助使用更小的 RAM(例如 2GB)的用户(我分离了一个 4 分钟的轨道,但只使用了 1.5GB),但这会使分离速度变慢。

如果您的 GPU 上没有足够的内存,只需添加-d cpu到命令行以使用 CPU。使用 Demucs,处理时间应大致等于轨道持续时间的 1.5 倍。

培训 Demucs

如果你想训练 (Hybrid) Demucs,请遵循训练文档

MDX 挑战再现

为了重现 Track A 和 Track B 提交的结果,请查看 MDX Hybrid Demucs 提交 repo

如何引用

@inproceedings{defossez2021hybrid,
  title={Hybrid Spectrogram and Waveform Source Separation},
  author={D{\'e}fossez, Alexandre},
  booktitle={Proceedings of the ISMIR 2021 Workshop on Music Source Separation},
  year={2021}
}

执照

Demucs 是根据LICENSE文件中的 MIT 许可证发布的。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

demucs-3.0.5.tar.gz (1.5 MB 查看哈希

已上传 source