news 2026/11/5 1:13:52

demucs 六源音频分离:从安装到 6 轨输出的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
demucs 六源音频分离:从安装到 6 轨输出的完整指南

demucs 六源音频分离:从安装到 6 轨输出的完整指南

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

Demucs 是一款开源音乐音源分离工具:输入一首歌,输出人声、鼓、贝斯、其他乐器(htdemucs_6s模型另加钢琴与吉他,共 6 轨)。默认模型htdemucs在 MUSDB HQ 测试集上取得9.00 dB的 Overall SDR,CPU 处理耗时约为歌曲时长的1.5 倍——知道这两点,就能决定它值不值得在你的机器上跑起来。

🎯 一句话定位:Demucs 和同类模型差在哪

Demucs v4 是混合域(时域+频域)架构的 Transformer 分离模型,与 README 对比表中列出的模型相比,它的差异可以用三句话说清:

  • 处理域:波形域、频谱域、混合域三者并存过,htdemucs走混合域路线,同时利用两个域的信息
  • 规模:htdemucs_ft在 MUSDB HQ 之外只用800 首额外歌曲微调,就做到 Overall SDR9.00 dB,与用了25k首歌训练的 Spleeter(5.9 dB)拉开明显差距
  • 音源数:标准 4 轨(drums、bass、vocals、other)之外,htdemucs_6s实验性提供 6 轨,官方明确提示 piano 轨"leaking and artifacts"较多
模型处理域额外训练数据Overall SDR
Spleeterspectrogram25k 首歌5.9
Hybrid Demucs (v3)hybrid无7.7
HT Demucs (v4)hybrid800 首歌9.0

(SDR 为论文口径的平均分离信噪比,单位 dB,数值越高越干净。)

⚙️ 装环境 + 跑通第一条分离命令

只分离不训练的话,一条 pip 命令即可,无需 clone 仓库:

pip3 install -U demucs

若要用仓库自带配置做训练,按 docs/training.md 准备 conda 环境:

git clone https://gitcode.com/gh_mirrors/de/demucs cd demucs conda env create -f environment-cpu.yml conda activate demucs && pip install -e .

最小可用命令(CPU 强制,最通用):

python3 -m demucs -d cpu -n htdemucs test.mp3

运行后你会看到:

  • 首次运行自动下载所选模型的权重,之后走本地缓存
  • 一行提示Separated tracks will be stored in <路径>,给出输出目录
  • 进度条走完后,在separated/htdemucs/<歌名>/下得到 4 个 wav:drums.wav、bass.wav、vocals.wav、other.wav
  • 输出为44.1 kHz、int16 立体声 wav;文件名含空格时,路径要整体加引号

🎤 提取纯人声,输出直接可用的卡拉 OK 伴奏

适合想练歌、做翻唱的人:--two-stems只输出两个文件,比完整分离少一堆用不上的轨。

python3 -m demucs --two-stems vocals --other-method minus test.mp3

生成vocals.wav和no_vocals.wav两条轨。--other-method minus的伴奏是"原曲直接减掉人声"得到的,混响尾巴保留得最完整;若改用默认的add方式,伴奏则由各声部相加得到,两者音色略有差异,可各跑一遍对比。注意:two-stems 只是事后合并,并不比全量分离更快、更省内存。

🥁 用 6 音源模型拆出鼓和贝斯,给 remix 备料

适合做 remix、编曲拆解的创作者:-n htdemucs_6s一次分离出 6 轨,其中鼓与贝斯的可用性较高,可直接拖进 DAW。

python3 -m demucs -n htdemucs_6s --mp3 test.mp3

--mp3把输出转成 MP3(默认320 kbps),单轨体积比 int16 wav 小得多,方便在网盘和素材库之间流转。提醒:htdemucs_6s是实验模型,piano 轨官方标注有大量伪影,拿它做成品前建议先试听。

🔬 它是怎么工作的:时频双支路 + 跨域 Transformer

核心机制一句话:两条 U-Net 支路并行卷积,最深处用 Transformer 互相"对齐"。频谱支路先用 STFT 把波形变成频谱图,沿频率轴卷积直到只剩单一频率,再转回时间卷积;时间支路直接在原始波形上做卷积。两路到达同一压缩尺度后,在编码器与解码器之间接入跨域 Transformer 编码器:域内用自注意力、域间用跨注意力(结构见图注描述的双 U-Net 示意,README.md 内嵌demucs.png为官方架构图)。解码从粗到细重建,各音源通过 CaC 复数频谱法从频谱还原为波形,训练损失始终在时域计算,保证输出是可直接播放的波形。

📋 5 个高频参数速查

参数作用什么时候用
-n/--name选模型,默认htdemucs要 6 轨用htdemucs_6s;求稳用默认
--two-stems只输出该音源+混合轨卡拉 OK、只要某一条轨
--segment每段长度(秒)GPU 爆内存时调小
-d计算设备,自动选 cuda/cpu强制 CPU 时显式写-d cpu
--shifts随机平移预测并平均,SDR 最多提升 0.2有 GPU 且追求质量时,代价是耗时 ×N
--mp3输出转 MP3,默认 320 kbps需要小文件分发时

完整参数(--float32、--int24、--jobs、--overlap等)见 docs/api.md。

🚧 避坑指南

现象:GPU 上跑着跑着 CUDA out of memory。原因:默认参数大约需要7 GB显存。 解决:--segment 8把分段调小(官方建议下限 10 秒内,再小质量会下降),或直接-d cpu。

现象:给htdemucs传--segment 30被拒,提示 "Maximum segment is: 7.8"。原因:Transformer 模型只能按训练时的分段长度推理,7.8 秒是硬上限。 解决:htdemucs系模型不要传大于 7.8 的值,长音频会自动分段处理。

现象:Linux/macOS 上读 mp3 报解码错误。原因:torchaudio 0.12 起不再自带 mp3 解码器。 解决:先装 ffmpeg,conda install ffmpeg -c conda-forge或sudo apt-get install ffmpeg。

现象:用htdemucs_6s分离出的 piano 轨噪点重、串音明显。原因:这是官方确认的已知短板,不是你的参数问题。 解决:正式素材优先用 4 源模型htdemucs;确需钢琴轨时做人工修音。

📚 延伸阅读

  • docs/api.md:Separator类的 Python API,适合写进自己的批处理脚本
  • docs/training.md:训练、微调与导出自定义模型
  • docs/linux.md / docs/mac.md / docs/windows.md:三平台安装细节

跑通上面第一条命令,你的 6 轨(或 4 轨)分离素材就齐了。最后留一个真实限制:本仓库已不再活跃维护,仅处理重要 bug 修复;GPU 用户请预留约3 GB显存起步、默认参数约7 GB,不够就--segment 8或-d cpu。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 1:13:06

如何用深蓝词库转换把 50 多种输入法词库格式互相转换

如何用深蓝词库转换把 50 多种输入法词库格式互相转换 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 深蓝词库转换&#xff08;imewlconverter&#xff09;是一款开…

作者头像 李华
网站建设 2026/11/5 1:12:38

SQL从零入门:hello-sql的50+实战命令与完整学习路径

SQL从零入门&#xff1a;hello-sql的50实战命令与完整学习路径 【免费下载链接】hello-sql Curso para aprender los fundamentos del lenguaje SQL y bases de datos relacionales desde cero y para principiantes. 项目地址: https://gitcode.com/gh_mirrors/he/hello-sql…

作者头像 李华
网站建设 2026/11/5 1:12:26

Rufus 制作 U 盘启动盘:分区选对、一次引导成功的完整方案

Rufus 制作 U 盘启动盘&#xff1a;分区选对、一次引导成功的完整方案 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus Rufus 是一个单文件、免安装的 U 盘格式化工具&#xff0c;核心场景很聚焦&…

作者头像 李华
网站建设 2026/11/5 1:11:44

8、SpringBoot高频面试题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/5 1:11:05

三月七小助手:星穹铁道自动化完整指南

三月七小助手&#xff1a;星穹铁道自动化完整指南 【免费下载链接】March7thAssistant 日常交给三月七&#xff0c;开拓留给你。《崩坏&#xff1a;星穹铁道》开源自动化助手。 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 每天凌晨4点体力刷新&…

作者头像 李华
网站建设 2026/11/5 1:10:12

ADS122U04IPWR+STM32F031C6工业温度采集系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华