Demucs:把一首混音拆成人声、鼓、贝斯和其他伴奏

开源项目猫目发布于 来源:Demucs 作者维护仓库
练歌、扒谱与重混前,可以先取得可分别试听的分离轨;四轨和六轨的差别比轨数更多。
Demucs:把一首混音拆成人声、鼓、贝斯和其他伴奏

为什么值得关注

把只有成品混音的音乐变成可分别听取和处理的声源估计,帮助练习者听清目标部分,也让剪辑者判断可用的素材范围。

适合谁:练歌、学习鼓和贝斯声部、准备重混素材且愿意使用本地工具的音乐爱好者

这次有哪些亮点

  • 默认四轨分别导出人声、鼓、贝斯和其他
  • 波形与频谱两路共同参与分离
  • 六轨加入吉他与钢琴,但官方提示钢琴渗漏和伪影明显

使用前需要知道

输出是估计分离轨,可能渗漏和失真;代码 MIT,但作者明确表示权重许可不清,不能据代码许可承诺商业使用;维护节奏有限。

想听清一首歌里的贝斯走向,或者把人声拿开练唱,手里却只有一份混音文件,Demucs 可以作为一个起点。它把输入音乐估计为人声、鼓、贝斯和其他四部分,分别输出音频。对练习者,价值不只是“去掉人声”,还包括把原来被其他声部盖住的部分单独听出来。

这里的“分轨”有一个重要含义:得到的是模型从成品混音中估计的声源,不是唱片工程里原来录制的独立音轨。后者保留了录音制作的原始材料,前者需要在已经重叠的声音里作判断。理解这一点,才能给分离结果安排合适的用途。

四个文件怎样进入练习流程

官方说明的默认四轨模型是 htdemucs。输入一首音乐后,结果保存在按模型和曲名组织的目录里,得到 vocals.wav、drums.wav、bass.wav、other.wav,是 44.1 kHz 的立体声音频。其他轨包含未归入前三类的伴奏,并不是某一种固定乐器。

以练贝斯为教学情境,先听 bass 轨确认音符与节奏,再回到原混音核对它和鼓的关系;练唱的人则可能只需要人声与剩余伴奏。Demucs 提供两轨模式,但官方说明它仍然先完整分离,再合并需要的部分,因此少导出几个文件不等于推理就更快或更省内存。

这些文件适合继续导入音频编辑软件做静音、循环或音量调整。重混时还要留意官方提醒:为避免削波,程序可能分别缩放输出轨,导致轨与轨之间的相对音量发生变化。把四轨简单叠回去,不宜直接假定就是原混音的电平关系。

架构图里的两个入口值得看什么

Hybrid Transformer Demucs 架构:波形与频谱两条分支通过跨域 Transformer 交换信息

官方架构示意,从下往上读。右下是音频波形,左下经过 STFT 变成频谱,两路在中间的 Cross-Domain Transformer 交流,顶部得到分离声源。这是方法图,不是某首中文歌的分离结果。查看原尺寸。

波形展示声音怎样随时间变化,频谱则把不同频率随时间的分布展开。v4 的 Hybrid Transformer Demucs 同时利用这两种表示,而不是只按一个频段把音乐切开。因此,人声、鼓与贝斯虽然可能同时发声,模型仍尝试结合声音结构估计各自的部分。

这也解释了它为什么不等于普通均衡器。调低某段频率会连带影响处于该频段的多种声音;源分离要判断的是声音属于哪一类声源。不过,架构图只能帮助理解方法,不能证明任何一首歌都能被干净拆开。

四轨够用时,不必先选六轨

仓库另外提供 htdemucs_6s,在四类之外加入 guitar 和 piano。想单独练吉他的人可能会感兴趣,但作者将六轨称为实验模型,并明确提醒钢琴轨有较多渗漏与伪影。所谓渗漏,就是目标轨里混进其他声源;伪影则是分离过程中出现不自然的声音。

因此,想得到伴奏先看四轨;确实需要吉他或钢琴,再比较六轨是否保留了所需细节。分出更多文件不自动等于每个文件都更可靠。另一个 htdemucs_ft 是微调版本,官方称可能略好,但耗时约为普通版本的四倍;这是发布方的模型取舍说明,不是本文测得的收益。

下载前还要看维护和许可

原 Meta 仓库已说明停止维护,并指向作者的 adefossez/demucs。作者分支提供当前使用说明,但作者也说暂不积极开发新功能。读者可从其 README 进入命令行用法,当前要求至少 Python 3.10;CPU 可运行,GPU 的速度和内存条件另有说明,FFmpeg 用于部分音频格式与 FLAC 输出。

最影响采用判断的限制在许可段:代码是 MIT,权重许可却没有被作者明确澄清,其中还涉及训练数据的研究用途条件,六轨也有额外的不确定性。音乐本身的使用权又是另一层条件。它适合先用于理解与评估源分离流程,不能因为代码开源就替商业重混、模型再分发或原曲使用作出许可保证。

参考资料

原始资料:Demucs 作者维护仓库

以上为编辑整理,功能、许可与使用条件以官方说明为准。

返回每日分享