Demucs 音频分离实战指南:一条命令拆出人声、鼓点和伴奏
2026/8/13 14:07:14 网站建设 项目流程

Demucs 音频分离实战指南:一条命令拆出人声、鼓点和伴奏

【免费下载链接】demucsCode for the paper Hybrid Spectrogram and Waveform Source Separation项目地址: https://gitcode.com/gh_mirrors/de/demucs

做视频、录播客、玩混音的朋友,八成都有过这样的时刻:好不容易找到一首歌,想要它的纯伴奏当片头 BGM,全网搜遍不是带水印就是糊成一团;想要单独提取某位歌手的人声做参考,剪半天还是一股子"伴奏残留"。而 Demucs 就是为解决这个痛点而生的开源音频分离工具——它用深度学习把混音里的鼓、贝斯、人声和其他伴奏逐轨拆开,在 MUSDB HQ 测试集上做到了 9.00 dB 的 SDR(信号失真比),更妙的是,你只需要一条命令。👇

从一次"找不到伴奏"的尴尬说起

我印象很深,朋友给乐队翻唱做伴奏带,原曲版权在别人手里,网上找的"伴奏版"居然还有人声和掌声。他花了一个晚上,最后在音频软件里手动抠频段,效果惨不忍睹。后来我把 Demucs 丢给他,十分钟后他发来一句:"这玩意儿是人做的吗?"

这其实就是 Demucs 的价值所在:把"分离音轨"这件事,从玄学变成了一条可复现的命令。它不挑歌、不需要专业声学知识、不依赖云端服务,模型跑在你自己电脑上,隐私和速度都握在手里。对新手来说,它是"点一下就能用"的工具;对老手来说,它又是一个能深度调参、能接入 Python 流水线的专业组件。

Demucs 凭什么分离得这么干净

先花两分钟搞懂它为什么强,后面用起来才不迷糊。

Demucs 目前是第四代(v4),核心叫Hybrid Transformer Demucs。通俗点说,它同时开了两条"流水线"来处理一段音频:

  • 一条流水线看原始波形(时域),像看一段连续起伏的声波曲线;
  • 另一条流水线看频谱图(频域),像看一首歌的"热力图",哪段频率、哪个时刻在响一目了然;

然后,两条流水线中间架了一座"跨域 Transformer"的桥,让时域信息和频域信息互相参考、互相印证。这个设计的聪明之处在于:鼓声在频谱上特征明显,人声在波形上轮廓清晰,两条流水线互补,分离自然更干净。

上图就是 Demucs v4 的混合架构:下方时域与频域两条编码器分支汇入中央的跨域 Transformer,再经两条解码器分支分别重建,最终输出四轨分离信号。

它的前身 Hybrid Demucs(v3)就是当年索尼 MDX 挑战赛的冠军模型;v4 把最内层换成了跨域注意力,进一步把 SDR 顶到了 9.00 dB。作为对比,很多经典老模型(比如 Wave-U-Net、Open-Unmix)在同一测试集上只有 3~6 dB。差距是"能听见底噪"和"几乎无损"之间的差距。

第一首歌:安装与第一条命令

安装就一条命令,前提是你有 Python 3.8 或更高版本:

# 普通用户装这个就够了,模型第一次运行时会自动下载 python3 -m pip install -U demucs

Windows 用户把python3换成python.exe,建议在 Anaconda Prompt 里执行。装完就能分离,不需要任何额外配置:

# 注意:文件名含空格一定要加引号 demucs "我最近循环的那首歌.mp3"

跑完会看到进度条,结束后在当前目录下多出一个separated/文件夹,结构长这样:

separated/ └── htdemucs/ # 模型名 └── 我最近循环的那首歌/ # 原文件名 ├── vocals.wav # 人声 ├── drums.wav # 鼓 ├── bass.wav # 贝斯 └── other.wav # 其他伴奏

四个文件都是 44.1kHz 的立体声 wav,可以独立播放。第一次跑通的那一下,成就感真的不亚于第一次学会剪辑。

只想要伴奏或人声?两个参数搞定

默认输出四轨,但很多场景你只需要其中一轨或两轨。这时候用--two-stems,它会额外帮你把"其余所有声音"混成一条:

# 卡拉OK神器:只要人声 + 无人声伴奏 demucs --two-stems=vocals "流行歌曲.mp3"

跑完会得到vocals.wavno_vocals.wav两个文件,前者可以拿去做翻唱参考,后者直接当伴奏用。同样的思路,把vocals换成drumsbass,就能单独提取鼓点或贝斯线,做 remix 或者练耳都很好使。

如果你想把结果直接存成 MP3 省空间,加上输出格式参数:

# 320kbps 高质量 MP3 输出 demucs --mp3 --mp3-bitrate 320 "高音质音乐.flac"

另外有两个小技巧值得记住:一是如果分离结果偶发削波(音量爆了),加--clip-mode clamp改用硬削波策略;二是如果觉得分离质量差一点意思,可以试试--shifts 4——它会对音频做多次随机位移预测再取平均,能小幅提升分离精度,代价是耗时翻倍。

模型怎么选:一张表看懂

-n参数可以切换预训练模型,默认是htdemucs。我整理了一张选择表,照着挑就行:

模型特点适合谁
htdemucs默认模型,质量和速度平衡大多数人的首选
htdemucs_ft精调版,质量更好但慢约 4 倍追求极限分离效果
htdemucs_6s在四轨基础上加了吉他和钢琴需要分离吉他/钢琴的场景
hdemucs_mmiv3 经典混合架构的重训版兼容性需求
mdx/mdx_extraMDX 挑战赛获奖模型特定测试集上的口碑之选
mdx_q/mdx_extra_q量化版,文件小、速度快显存小或追求速度

用法很简单:

demucs -n htdemucs_ft "重要录音.wav"

小提醒:htdemucs_6s的钢琴轨目前质量一般,官方都承认有串扰,想认真做钢琴分离的话建议多听听效果再决定。

显存不够、只有 CPU?三条退路都在这里

分离是纯计算活,模型越大越吃显存。默认参数下跑 GPU 大约要 7GB 显存,如果遇到CUDA out of memory,按下面顺序依次尝试:

  1. 缩小分块:加--segment 4,把音频切成更短的片段逐段处理,显存占用立刻降下来;
  2. 关缓存:设置环境变量PYTORCH_NO_CUDA_MEMORY_CACHING=1,能再挤一挤,但会变慢;
  3. 回 CPU:直接-d cpu,处理时间大约是音频时长的 1.5 倍,一首四分钟的歌大概六分钟出结果,可接受。

如果你的 CPU 是多核的,还可以用-j 4开 4 个并行任务,吃满核心跑得更快(内存会跟着涨,别开太狠)。

把它变成自己程序的一部分:Python API

命令行适合人用,如果你想把它嵌进自己的脚本或工具,Demucs 也提供了干净的 Python 接口,三行代码就能跑一次分离:

import demucs.api # 初始化分离器,可以指定模型和分块长度 separator = demucs.api.Separator(model="htdemucs", segment=8) # 分离文件,返回原始音频和分离结果(一个 dict) origin, separated = separator.separate_audio_file("demo.mp3") # 逐轨保存,注意目标目录要先建好 import os os.makedirs("out", exist_ok=True) for stem, source in separated.items(): demucs.api.save_audio(source, f"out/{stem}.wav", samplerate=separator.samplerate)

这套 API 的完整说明在项目里的 docs/api.md,回调、参数热更新(update_parameter)、批量分离都有现成实现,想深入了解源码的话,分离逻辑集中在 demucs/separate.py,模型实现在 demucs/htdemucs.py。

最后:几条心得和下一步建议

如果只看本文一个结论,那就是:先装好,随便拿一首歌跑一遍,再回来读参数。音频分离的乐趣在于听感反馈,参数调来调去都不如亲手听一次对比来得直观。

动手之前,留给你三句实在话:

  • 输入决定上限:源文件越干净,分离效果越好;转码多次的网盘音质,神仙模型也救不回来;
  • 别贪快:第一次跑建议用默认参数,确认效果满意后再用--shifts--overlap这类技巧微调;
  • 多看官方文档:不同系统的坑(比如 Windows 的 ffmpeg 依赖、macOS 的安装细节)都写在 docs/windows.md、docs/mac.md 和 docs/linux.md 里,遇到问题先翻它们。

今晚就挑一首你最近单曲循环的歌试一把吧——戴上耳机,把分离出来的drums.wav单独播一遍,你会第一次听清一首歌"骨架"的声音。这大概就是这类工具最迷人的地方:它不改变音乐,只是把藏在混音里的层次,一件件还给你。🎧

【免费下载链接】demucsCode for the paper Hybrid Spectrogram and Waveform Source Separation项目地址: https://gitcode.com/gh_mirrors/de/demucs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询