
StemDeck人声拆分深度指南主唱与和声分离方法、UVR-MDX-NET模型选型与开源许可避坑【免费下载链接】stemdeckStemdeck is an modern stem extraction platform for musicians,producers and hobbyists, designed to isolate vocals, drums, bass, piano and guitar for practice, transcription, remixing, and creative audio workflows through a modern and interactive interface项目地址: https://gitcode.com/gh_mirrors/st/stemdeckStemDeck 是一款完全本地运行的开源音频 Stem 分离平台其「人声拆分」功能可把一首歌的人声轨道进一步拆成**主唱Lead Vocals与和声/伴唱Backing Vocals**两条独立轨道。本文基于项目源码带你搞清楚它的实现流程、UVR-MDX-NET 模型选型的来龙去脉以及一个被官方明确否决的「高分模型」背后隐藏的开源许可陷阱。一、什么是 StemDeck 的人声拆分大多数 Stem 分离工具包括 StemDeck 内置的 Demucs 引擎只能把人声整体切成一条vocals.wav主唱、和声、背景人声全部混在一起。StemDeck 提供了一条「二次隔离」路径对已完成的任务按需运行卡拉 OKKaraoke专用模型在已经隔离好的人声轨上再做一次分离最终产出两个新轨道产出文件含义lead_vocals.wav主唱/主旋律人声backing_vocals.wav和声、伴唱、背景人声这套机制是用户触发的「按需动作」不是主分离流程的一部分源码入口在 app/pipeline/vocal_split.py对应的 API 端点为POST /api/jobs/{id}/vocal-split实现在 app/api/jobs.py。二、主唱与和声是如何分离的两步流程StemDeck 的人声拆分并不是一次性完成而是两个阶段的接力 第 1 步Demucs 六轨分离。使用 Meta 开源的htdemucs_6s模型MIT 许可把整首歌拆成 vocals、drums、bass、guitar、piano、other 六条轨道其中就包含完整人声轨vocals.wav。第 2 步UVR-MDX-NET 卡拉 OK 二次隔离。对vocals.wav单独运行UVR-MDX-NET Karaoke 2模型UVR_MDXNET_KARA_2.onnx通过audio-separator库加载执行。这个模型的输出标签很直白Vocals→ 再次通过人声隔离的「幸存主唱」→ 重命名为lead_vocalsInstrumental→ 输入中除主唱以外的一切此时输入已是纯人声所以剩下的就是和声/伴唱→ 重命名为backing_vocals重命名逻辑写在工作进程 app/pipeline/vocal_split_worker.py 中它刻意不依赖上游库的默认文件名格式保证导出文件名的稳定。 工程细节值得新手学习每次拆分都会启动一个全新的子进程而不是复用常驻 worker对比 Demucs 的demucs_worker因为这是低频的用户触发动作不需要摊销模型加载成本同时父进程会挂一个看门狗TIMEOUT_VOCAL_SPLIT默认 1800 秒无输出即判为卡死防止模型下载或推理挂起。相关常量定义在 app/core/config.py。三、如何触发Extract 工具栏的 Combined / Lead Backing 开关在界面上操作非常简单提交分离任务时Extract 工具栏的Vocals区域提供了一个Combined / Lead Backing切换开关。选Combined只输出常规六轨选Lead Backing任务完成后自动追加人声拆分完成后音轨区里原本单张的 Vocals 卡片会被 Lead Vocals 与 Backing Vocals 两张卡片替换可以像其他轨道一样独立静音M、独奏S、调节音量并单独导出。前端触发逻辑在 static/js/job.jsrunVocalSplitIfWanted()在任务变为 done 状态时自动发出拆分请求并且内置了一次性触发保护避免 SSE 事件重复到达导致昂贵的拆分被重复执行。下图是拆分完成后的 DAW 式多轨视图顶栏统计区可以直接看到LEAD VOCALS与BACKING VOCALS两条轨道及其声能占比四、UVR-MDX-NET 模型选型为什么默认是 Karaoke 2StemDeck 的默认模型是UVR-MDX-NET Karaoke 2它来自 Ultimate Vocal RemoverUVR作者 Anjok07项目的官方分发模型经由 MIT 许可的audio-separator包下载。官方选型依据docs/models.md可以总结为一条标准许可必须干净、分发必须公开。✅UVR_MDXNET_KARA_2.onnxUVR 项目官方发布MIT 署名README 明确要求向 UVR 及其开发者致谢——通过审计成为默认值。同时项目还预留了环境变量STEMDECK_KARAOKE_MODEL允许部署方在不改代码的前提下替换检查点例如换成 Roformer 系模型模型首次使用时会自动下载到本地模型缓存目录下载中断时还有修复逻辑load_or_heal见 app/core/model_cache.py。「评分更好」的备选方案mel-band Roformer 与它的许可陷阱这里有一个非常典型的开源许可陷阱值得每个集成第三方 AI 模型的人引以为戒 audio-separator社区生态里有一个卡拉 OK 检查点mel_band_roformer_karaokeaufr33/viperx其公开的 SDR 指标10.1956明显优于 MDX-Net Karaoke 2——SDR 越高分离质量通常越好。项目最初也倾向于用它但官方逐条核实后直接否决核查项结论LICENSE 文件❌ 从未发布分发渠道中也无许可声明首发渠道❌ 通过 UVR 的 Boosty 支持者付费墙页面发布并非公开开源公共 Hugging Face 镜像❌ 实测返回 401已门控/下架依赖它随时会失效另一个「干净许可」的 Roformer 备选❌ 声称有许可但仓库中并无 LICENSE 文件也就是说指标最优的模型恰恰是最不该用的。付费墙首发意味着作者从未打算允许免费再分发即使 StemDeck 是免费非商业项目、实际法律风险较低一个「已经死掉」的下载镜像也足以让它成为不可靠的依赖。这正是开源项目选型中「合规 指标」的教科书案例。完整的审计过程记录在 docs/models.md包括被否决模型的每一条证据。五、实用建议首次使用要有耐心卡拉 OK 检查点高达数百 MB首次拆分会触发下载默认超时放宽到 1800 秒就是为了不误杀慢速网络失败不影响主流程人声拆分是 best-effort 设计——失败时六条基础轨道保持原样错误详情写入任务目录的vocal_split_error.txt见 app/api/jobs.py可以放心重试想换模型先查许可如果你通过STEMDECK_KARAOKE_MODEL自定义检查点请务必先确认其 LICENSE 与分发渠道参考 docs/models.md 的核查清单有无 LICENSE 文件、是否付费墙首发、公共镜像是否仍可访问本地运行、隐私安全整个分离与拆分管线都在你本机完成音频不上传任何服务器。六、小结StemDeck 的人声拆分用「Demucs 粗分离 UVR-MDX-NET 卡拉 OK 模型精分离」两步就能把主唱与和声拆成独立可导出的轨道对编曲扒带、翻唱练习和混音分离非常实用。而它在模型选型上宁可放弃 SDR 更高的社区模型也要选择许可干净的官方 MDX-Net Karaoke 2——这个决定本身就是对「开源许可陷阱」最好的回应。想深入了解各模型Demucs、All-In-One 段落分析等的许可背景可直接阅读项目内的模型许可文档 docs/models.md。【免费下载链接】stemdeckStemdeck is an modern stem extraction platform for musicians,producers and hobbyists, designed to isolate vocals, drums, bass, piano and guitar for practice, transcription, remixing, and creative audio workflows through a modern and interactive interface项目地址: https://gitcode.com/gh_mirrors/st/stemdeck创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考