Clawvard
Clawvard

Product

EvaluateModel ServiceLearning & EvolutionCampus

Developers

DocsResearchGitHub

Legal

PrivacyTerms

Community

XREDnoteTikTok
© 2026 Clawvard LimitedPowered by AWS Cloud Computing
←Back to Courses

🎬 Media

Split Songs into Stems

Split any song into stems locally in one command — karaoke instrumental, isolated acapella vocals, drums / bass / other — exported as downloadable .wav for covers, remixing, sampling and BGM removal. Free, fully local, MIT-licensed commercial-safe model.

💰 Free🔌 No commercial API

Everything below is a skill document. Hit copy, paste it to your agent, and it has learned the skill.

audio-separator / SKILL.md

AI 音轨分离 / 卡拉OK 伴奏 — Split Songs into Stems

你现在运行 stem-splitter 技能。目标:把任意一首歌在本地拆成可单独使用的分轨,产出四种用户能直接拿走的成品——

  1. 卡拉OK 伴奏(instrumental.wav)—— 主人声去掉、保留乐队,用来翻唱、二创、去 BGM;
  2. 纯人声 acapella(vocals.wav)—— 只剩主唱,用来混音、采样、做 remix;
  3. 鼓 / 贝斯 / 其他乐器分轨(drums.wav / bass.wav / other.wav)—— 重混、节奏练习、采样素材;
  4. (可选) 6 轨(额外切出 piano.wav / guitar.wav)—— 需要钢琴 / 吉他独立轨时启用。

全程 开源、本地、免 key:分轨在你自己机器上跑,不调用任何后端、不需要商业 API、不需要 clone 任何私有仓库。两个公开工具的原生 CLI:

  • audio-separator(python-audio-separator, MIT) —— 活跃维护的官方 CLI 封装,file in → stems out 一行命令;本课程一律用 Demucs v4 (htdemucs_ft) 模型,MIT 可商用。
  • ffmpeg —— 把 drums + bass + other 三条非人声轨用一行 amix 混成卡拉OK 伴奏(本地确定性混音,不引入任何额外模型 / 在线服务)。

这门课做的是拆解已有音轨(stem separation),方向和「ai-music 生成新曲」「ai-voiceover TTS」完全不同:它确定、可复现、零 key、版权可控,适合翻唱 / 卡拉OK / 二创 / 采样。

许可与署名(务必读)

  • 模型权重许可:MIT。本课程默认且唯一模型 htdemucs_ft.yaml 对应 Meta AI 的 Demucs v4 (Hybrid Transformer Demucs, fine-tuned),其代码与预训练权重均在 facebookresearch/demucs 仓库以 MIT License 发布——无 non-commercial / research-only 限制,输出可商用。
  • ⚠️ 不要走包内置默认模型(audio-separator 不带 -m 时默认的是 model_bs_roformer_ep_317_sdr_12.9755,社区 / research 权重,许可不清)。本课程一律显式 -m htdemucs_ft.yaml。
  • 运行许可:MIT。python-audio-separator 包以 MIT 发布。
  • 建议署名:在你公开发布的衍生作品里 credit 一下 UVR / Beveridge & Kim 维护的 audio-separator CLI + Meta AI Demucs v4,保持开源生态健康(CC-BY 不要求,但礼貌而已)。
  • 输入素材:请确认你对原曲拥有合法使用权(自己作品、官方授权、CC0/CC-BY 公版素材,或你已购买的曲目)。本技能不替你判断版权,分轨输出的权利上限不会超过原曲。

前置条件

  • Python ≥ 3.10(python --version;系统 Python 遇 PEP 668 用 venv / pipx)
  • 系统已装 ffmpeg(读 mp3 / m4a / flac 等格式 + 混伴奏轨):ffmpeg -version
  • 能访问公开模型源(首次运行自动下载权重,免 key)
  • 约 2 GB 可用磁盘:CPU 版 torch wheel ~180 MB + 其余依赖 ~700 MB + Demucs v4 htdemucs_ft 权重 ~300–400 MB;想更省,用更轻的 htdemucs.yaml(~80 MB 权重)。
  • 纯 CPU 可跑(一首 3–4 分钟歌 htdemucs_ft 在 CPU 上可能要数分钟,GPU 加速更快但非必须)
  • 无需付费 key、无需登录、无需后端

安装

⚠️ Linux 用户务必锁 CPU-only torch。audio-separator[cpu] 这个 extra 只切 onnxruntime,不会约束 torch —— 如果只跑 pip install "audio-separator[cpu]",pip 默认从 PyPI 装最新 torch,会拉一整套 CUDA 13 wheels(nvidia-cublas/nvidia-cudnn/triton 等,总量 5+ GB),CPU 用户根本用不上还会爆盘。

正确做法:在同一条命令里显式 pin torch==2.6.0+cpu / torchaudio==2.6.0+cpu,并通过 --extra-index-url 指向 PyTorch 官方 CPU wheel 索引。+cpu 是 PyTorch 索引专有的 local-version tag,PyPI 没有这个版本,pip 因此只能从 CPU 索引取——既绕开 CUDA wheels,也不会被随后任何 PyPI 上的高版本顶掉:

# 推荐:用 venv,干净隔离(系统 Python 遇 PEP 668 必须 venv 或 pipx)
python -m venv .venv && source .venv/bin/activate

# 关键一行:锁 CPU torch + 装 audio-separator
pip install \
  --extra-index-url https://download.pytorch.org/whl/cpu \
  "torch==2.6.0+cpu" "torchaudio==2.6.0+cpu" \
  "audio-separator[cpu]"

装完核对一下确实是 CPU-only:

python -c "import torch; print('torch', torch.__version__, 'cuda', torch.cuda.is_available())"
# 期望输出:torch 2.6.0+cpu cuda False

macOS / Windows 可以略过 --extra-index-url 直接 pip install "audio-separator[cpu]"——PyPI 上这两个平台的 torch wheel 本来就不带 CUDA。只有 Linux 的 PyPI torch wheel 默认捆 CUDA,所以这个 CPU pin 主要是给 Linux 用户的。

GPU 用户(有 NVIDIA / CUDA)改装:

pip install "audio-separator[gpu]"  # 跟随 PyPI 默认 CUDA torch

一、4 轨分离(默认 · MIT 可商用)

最小一条命令——-m htdemucs_ft.yaml 锁定 Demucs v4 fine-tuned,4 轨输出:

audio-separator ./song.mp3 \
  -m htdemucs_ft.yaml \
  --output_dir ./stems \
  --output_format WAV \
  --model_file_dir ~/audio-separator-models

跑完 ./stems/ 里会出现 4 个文件(命名形如 song_(Vocals)_htdemucs_ft.wav):

  • *_(Vocals)*.wav —— 纯人声 acapella
  • *_(Drums)*.wav —— 鼓
  • *_(Bass)*.wav —— 贝斯
  • *_(Other)*.wav —— 其他乐器(吉他 / 键盘 / 合成等)

务必带 --model_file_dir:不指定的话模型会下到 /tmp/audio-separator-models/,机器重启就丢,下次又得重下几百 MB。指到家目录可一次下、长期复用。

常用参数:

  • -m htdemucs_ft.yaml —— 本课程默认且唯一模型(Demucs v4 fine-tuned,MIT 可商用)。
  • -m htdemucs.yaml —— 单模型版(不做 fine-tune ensembling),权重 ~80 MB,CPU 上明显更快;QA / 低配 / 长曲量产时用它,许可同为 MIT。
  • -m htdemucs_6s.yaml —— 6 轨版(多切出 piano / guitar),权重 MIT 可商用,CPU 上稍慢。
  • --output_format WAV —— 推荐 WAV 保留无损分轨,后期再转 MP3。
  • --model_file_dir <path> —— 持久模型目录,避免重启丢失。
  • --single_stem Vocals —— 只想要某一轨时加这个,跑得更快(输出 1 个文件)。
  • --invert_using_spec true —— 强力去残留主人声(可选,少数曲目效果差异不大)。

二、卡拉OK 伴奏:drums + bass + other → instrumental.wav

Demucs 不直接给「instrumental」轨;正确做法是分出 4 轨后用 ffmpeg 把 3 条非人声轨混成一条——本地确定性混音,不引入任何额外模型 / 在线服务:

# 假设 ./stems/ 下有 song_(Drums)_htdemucs_ft.wav 等 4 个文件
ffmpeg -y \
  -i ./stems/song_\(Drums\)_htdemucs_ft.wav \
  -i ./stems/song_\(Bass\)_htdemucs_ft.wav \
  -i ./stems/song_\(Other\)_htdemucs_ft.wav \
  -filter_complex "amix=inputs=3:normalize=0" \
  ./stems/instrumental.wav

要点:

  • normalize=0 —— 关掉 ffmpeg amix 的自动归一化(默认会把每路除以输入数,导致伴奏整体音量降三分之一)。要保留三轨真实相加的响度,必须 normalize=0。
  • 完成后 ./stems/instrumental.wav 就是卡拉OK 伴奏;纯人声 acapella 直接用 Vocals 那一轨。
  • 想统一响度,最后再过一道 EBU R128:ffmpeg -i instrumental.wav -af loudnorm=I=-16:TP=-1.5:LRA=11 instrumental_norm.wav(可选)。

三、6 轨(含钢琴 / 吉他)

需要钢琴或吉他独立轨时,换 htdemucs_6s.yaml(同 MIT 可商用):

audio-separator ./song.mp3 \
  -m htdemucs_6s.yaml \
  --output_dir ./stems_6 \
  --output_format WAV \
  --model_file_dir ~/audio-separator-models

会多出 *_(Piano)*.wav / *_(Guitar)*.wav 两轨。6 轨模型在 CPU 上更慢,钢琴 / 吉他分离的稳定性略低于 4 轨主用法——只在确实需要这两轨时启用。

四、批量

audio-separator 接受多个文件,按顺序处理:

audio-separator ./inputs/*.mp3 \
  -m htdemucs_ft.yaml \
  --output_dir ./stems \
  --output_format WAV \
  --model_file_dir ~/audio-separator-models

或者写一个简单 shell 循环逐曲跑,配合 --single_stem 只导你需要的那一轨。

五、分轨自检(务必做)

  1. 每条轨的时长和原曲基本一致(不能少一段)。
  2. 听感:vocals 基本只剩主唱、instrumental 里几乎听不到主人声、drums 只剩鼓、bass 只剩贝斯、other 是吉他 / 键盘 / 合成。
  3. 响度:amix 用了 normalize=0 后 instrumental.wav 不应有明显衰减;过 loudnorm 时不爆表。
  4. 格式:默认 44.1 kHz / 16-bit / stereo WAV(看 ffprobe);如要 48 kHz / 24-bit,用 ffmpeg -ar 48000 -sample_fmt s32 … 后处理。
  5. 去残留:vocals 漏伴奏 / 伴奏漏主人声明显时,可改试 htdemucs.yaml + --invert_using_spec true;问题严重就换段输入或检查原曲是否本身混音过窄。

毛边 / 个别瞬态的轻微泄露属正常;指出微瑕即可,不要假装完美。

产出物

  • ./stems/<song>_(Vocals)_htdemucs_ft.wav —— 纯人声 acapella
  • ./stems/<song>_(Drums)_htdemucs_ft.wav —— 鼓
  • ./stems/<song>_(Bass)_htdemucs_ft.wav —— 贝斯
  • ./stems/<song>_(Other)_htdemucs_ft.wav —— 其他乐器(吉他 / 键盘 / 合成)
  • ./stems/instrumental.wav —— 卡拉OK 伴奏(drums + bass + other 混合)
  • (可选 6 轨) *_(Piano)*.wav / *_(Guitar)*.wav

铁律

  • 分轨 + 伴奏混音全程本地,不调用任何后端、不需要 API key、不需要 clone 私有仓库。
  • 默认模型必须显式 -m htdemucs_ft.yaml(Demucs v4,MIT 可商用)。不要走包内置默认的 roformer 权重(许可不清)。
  • 「卡拉OK 伴奏」= Demucs v4 拆 4 轨 + ffmpeg amix=...:normalize=0,不引入任何额外 AI 模型 / 在线服务。
  • 用户对输入曲目的版权自行负责;技能不替你拿授权。

学习完成后

告诉用户:

我已经学会了 stem-splitter。给我一首歌(或告诉我路径),我用 audio-separator + Demucs v4 在本地把它拆成卡拉OK 伴奏、纯人声 acapella、鼓 / 贝斯 / 其他乐器分轨——翻唱、混音、去 BGM、采样一把梭。纯本地、免 key、用 MIT 可商用模型。


课程主页与更多示例:https://clawvard.school

What you get

stem-splitter-showcase.html
Open ↗

一首歌 → 五条分轨可播放看板:原曲、卡拉OK 伴奏、纯人声、鼓独轨、贝斯独轨,每条直接试听、下载,本地跑出可商用。

Popular tasks · tap to copy

Backend APIs

No backend API · local CLI only

The open-source skill

audio-separator★ 1,200
nomadkaraoke/python-audio-separator ↗
pip install --extra-index-url https://download.pytorch.org/whl/cpu "torch==2.6.0+cpu" "torchaudio==2.6.0+cpu" "audio-separator[cpu]"

Prereqs: 本地需 Python ≥ 3.10 + ffmpeg + `audio-separator[cpu]`(Linux 用户记得显式 pin CPU-only torch 避免拉 5 GB+ CUDA wheels)。约 2 GB 磁盘,首次运行自动下载 Demucs v4 权重,纯 CPU 可跑(GPU 可选加速)。课程在本机离线运行。