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

资讯详情

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

AI 音频分离实战指南:三步拆出人声与伴奏,免费开源工具 Demucs 使用全记录

AI 音频分离实战指南:三步拆出人声与伴奏,免费开源工具 Demucs 使用全记录 AI 音频分离实战指南三步拆出人声与伴奏免费开源工具 Demucs 使用全记录【免费下载链接】demucsCode for the paper Hybrid Spectrogram and Waveform Source Separation项目地址: https://gitcode.com/gh_mirrors/de/demucs如果你最近被人声提取免费人声分离工具这类词刷过屏那大概率也绕不开 Demucs——一个把 AI 音频分离做到相当极致的开源项目。它能在一首歌里把人声、鼓、贝斯、伴奏四样东西拆得干干净净也是我剪片、做播客这两年几乎离不开的免费帮手。 凌晨一点我被一段伴奏逼到崩溃先讲个真实场景。上个月我在剪一期视频中途需要一段没有主唱的纯伴奏当底可手头唯一的素材是带人声的成品歌。头两个小时我试遍了传统招数用 EQ 把中频砍掉人声是没了但所有乐器一起变得像隔着一层被子在演奏换相位抵消伴奏直接被削出奇怪的水声花了一晚上找各种音乐去伴奏教程要么收费要么处理完的效果像洗衣机在甩干。其实问题出在思路上。一首歌里人声和其他乐器在频率上是叠在一起的靠滤掉某个频段这种物理手段永远是在两难里做选择留人声就伤乐器保乐器就漏人声。直到有人甩给我一句试试 Demucs。那晚之后我的工作流彻底变了。 这工具到底是什么来头Demucs 是 Facebook Research也就是后来的 Meta团队开源的音频分离项目项目描述只有一句话Hybrid Spectrogram and Waveform Source Separation——混合频谱图与波形源分离。第四代版本v4最大的变化是把模型换成了混合 Transformer 架构两条分支分别处理原始波形和频谱图中间用跨域 Transformer 把两边信息打通。在 MUSDB HQ 标准评测集上它的整体 SDR信号失真比达到了 9.00 dB这个数字在公开模型里是第一梯队。更关键的是它完全免费MIT 协议拿去商用也没问题。整个项目的代码结构也很清爽核心模型实现就躺在demucs/htdemucs.py命令行入口在demucs/separate.py你想研究还是魔改都有现成路径。关于它到底怎么把声音拆开的我有个比较顺口的比喻一首成品歌就像一锅炖好的汤人声、鼓、贝斯、其他伴奏是下锅前的四种食材。传统做法是拿滤网去捞——捞上来的人声总带着汤味儿乐器也碎了。Demucs 反着来它先用海量音乐记住这四种食材各自长什么样然后从成品汤里把每一份完整地还原出来而不是过滤出来。这就是它比传统去人声方案干净得多的根本原因。 第一步装好就跑三分钟听到第一版结果上手难度约等于装一个普通 Python 库前提是你的环境在 Python 3.8 以上python3 -m pip install -U demucsWindows 用户记得把命令里的python3换成python.exe并且从 Anaconda Prompt 里运行这样最不容易踩依赖坑。装完直接开跑demucs 素材.mp3这条命令做了什么说清楚一点它会自动下载默认模型htdemucs然后开始分离。结束后所有结果会出现在当前目录下的separated/htdemucs/素材/文件夹里里面是四个 44.1kHz 立体声 wav 文件——vocals.wav人声、drums.wav鼓、bass.wav贝斯、other.wav其余伴奏。有 N 卡会自动走 GPU没有就老老实实用 CPU只是慢一些。我第一次跑的时候一首三分钟的歌等了一首歌的时间听到耳机里出现干净到不像话的人声独唱说实话有点起鸡皮疙瘩。⚠️ 新手上路最容易栽的三个跟头用了一阵之后我总结出新手高频翻车的三个地方全是我自己踩过的显存不够。默认参数跑 GPU 大约要 7GB 显存老显卡很容易直接爆。对策是先加--segment 8把音频切成 8 秒一段分开处理显存占用立刻掉下来还不行就设环境变量PYTORCH_NO_CUDA_MEMORY_CACHING1最兜底的是-d cpu切回 CPU。CPU 太慢。纯 CPU 处理时间大约是音频时长的 1.5 倍一首歌等一首半歌的时间。多核机器记得加-j 4让四个核心并行干活能明显提速代价是内存占用跟着翻倍。输出格式不合用。默认输出是 int16 编码的 wav做普通素材够了但如果要进后期做精细混音用--float32保留完整动态只是想压缩体积发给客户预览加--mp3即可。还有个容易被忽略的细节是削波。分离过程偶尔会产出超过 0dB 的峰值Demucs 默认会自动整体缩放所有输出轨来防削波这会悄悄改变各轨之间的相对音量。如果你追求各轨绝对忠实就加--clip-mode clamp让它硬切。️ 进阶从去掉人声到只留我想要的用熟之后你会发现Demucs 能干的远不止去人声这一件事换个参数就是另一种玩法做播客和访谈时降背景人声。我常在咖啡馆录音背景里总有人声穿进来。这时候用--two-stemsvocals它会输出vocals.wav和no_vocals.wav两轨后者是去掉人声后的纯环境声用来铺在访谈下面正合适。扒谱学琴时提取单件乐器。换用-n htdemucs_6s这个六源模型它会在四轨之外多拆出吉他guitar和钢琴piano两轨。吉他分离质量相当能打钢琴目前还有点糊——作者在项目说明里也大方承认了这一点别抱太高的期待。短视频和直播场景追求速度。想要跑得快、下载体积小选-n mdx_q这个量化模型如果对质量有执念、又不差那点时间-n htdemucs_ft是精度最高的版本代价是分离耗时约四倍。想把它接进自己的脚本。命令行之外还有 Python API在你自己的程序里一行就能调用import demucs.separate demucs.separate.main([--two-stems, vocals, 素材.mp3])这样一来批量处理、自动归档这些需求都能自己写脚本搞定而不是每次手动敲命令。 让我少走半年弯路的三条小经验求质量时加--shifts。这个参数会让模型对同一段输入做几次随机偏移的预测再取平均等于让模型多听几遍再下结论人声边缘会更干净。代价是慢 N 倍没 GPU 千万别开。我一般只对要交差的成品用--shifts 2。提速先动--overlap。默认的预测窗口重叠率是 0.25改成 0.1 能快一截质量损失大多数时候听不出来日常批量处理我常年设这个值。注意分段上限。混合 Transformer 模型每段最长只支持 7.8 秒--segment不是越大越好开到十几秒反而可能出错够用就行。另外提醒一句作者在项目首页注明这个仓库已不再积极维护只有重要 bug 修复会跟进但核心功能非常稳定我用了大半年没出过幺蛾子日常使用完全不用担心。 它凭什么拆得这么干净一个外行能听懂的版本如果你好奇背后的原理可以看这张官方架构图它把 v4 的内部结构画得很直白简化成大白话就是模型里有两条并行的 U-Net 分支一条直接吃原始波形——相当于一个听力好的人负责把握节奏和瞬态另一条吃频谱图——相当于一个眼力好的人负责看清每个音高的分布。两条分支各自提取特征后中间的跨域 Transformer 编码器让它们互相交换情报域内自己做自注意力域间做交叉注意力。解码阶段再把两份信息合并通过逆短时傅里叶变换iSTFT还原成四路独立的波形。这正是它比只看波形或只看频谱的传统模型都稳的原因两边信息互补拆出来的每一轨都更接近原本的样子。 现在轮到你了说到底工具的价值要靠用过一次才能体会。我的建议很朴素装好 Demucs找一首你听了几百遍的歌跑一次然后戴上耳机听那轨人声独唱。那种这首歌居然还有这一面的感觉就是最好的入门体验。想再深入一点训练指南在docs/training.mdPython 高级接口在docs/api.md都是项目里现成的文档。但别急着一口气读完——先跑通第一次分离其他的等你被某个需求逼到门口时再看也来得及。【免费下载链接】demucsCode for the paper Hybrid Spectrogram and Waveform Source Separation项目地址: https://gitcode.com/gh_mirrors/de/demucs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表