尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

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

Demucs 音频分离实战指南:一条命令拆出人声、鼓点和伴奏 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 Demucsv3就是当年索尼 MDX 挑战赛的冠军模型v4 把最内层换成了跨域注意力进一步把 SDR 顶到了 9.00 dB。作为对比很多经典老模型比如 Wave-U-Net、Open-Unmix在同一测试集上只有 3~6 dB。差距是能听见底噪和几乎无损之间的差距。第一首歌安装与第一条命令安装就一条命令前提是你有 Python 3.8 或更高版本# 普通用户装这个就够了模型第一次运行时会自动下载 python3 -m pip install -U demucsWindows 用户把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-stemsvocals 流行歌曲.mp3跑完会得到vocals.wav和no_vocals.wav两个文件前者可以拿去做翻唱参考后者直接当伴奏用。同样的思路把vocals换成drums或bass就能单独提取鼓点或贝斯线做 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按下面顺序依次尝试缩小分块加--segment 4把音频切成更短的片段逐段处理显存占用立刻降下来关缓存设置环境变量PYTORCH_NO_CUDA_MEMORY_CACHING1能再挤一挤但会变慢回 CPU直接-d cpu处理时间大约是音频时长的 1.5 倍一首四分钟的歌大概六分钟出结果可接受。如果你的 CPU 是多核的还可以用-j 4开 4 个并行任务吃满核心跑得更快内存会跟着涨别开太狠。把它变成自己程序的一部分Python API命令行适合人用如果你想把它嵌进自己的脚本或工具Demucs 也提供了干净的 Python 接口三行代码就能跑一次分离import demucs.api # 初始化分离器可以指定模型和分块长度 separator demucs.api.Separator(modelhtdemucs, segment8) # 分离文件返回原始音频和分离结果一个 dict origin, separated separator.separate_audio_file(demo.mp3) # 逐轨保存注意目标目录要先建好 import os os.makedirs(out, exist_okTrue) for stem, source in separated.items(): demucs.api.save_audio(source, fout/{stem}.wav, samplerateseparator.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),仅供参考
返回列表