AI-powered stem separation and voice cleaning — API, SDKs, CLI, and open-source ONNX inference.
Website · Developer docs · API keys · Pricing · Free trial
Separate any song into vocals, drums, bass, piano, guitar, and other stems — or clean voice recordings (noise, hum, echo) — without running your own GPU fleet. Models are based on HTDemucs and DeepFilterNet. Use our hosted API or run the same lineage locally with demucs-onnx.
| I want to… | Start here |
|---|---|
| Call the API from code | node-stemsplit (npm i @stemsplit/sdk) · stemsplit-python (pip install stemsplit-python) |
| Run separation locally (no PyTorch) | demucs-onnx · ONNX models on Hugging Face · browser guide |
| Automate in CI/CD | stemsplit-github-action |
| No-code & AI agents | n8n-stemsplit · stemsplit-mcp · zapier-stemsplit |
| Terminal / scripts | stemsplit-cli — brew install StemSplit/tap/stemsplit (homebrew-tap) |
demucs-onnx exports HTDemucs FT to ONNX and runs inference with numpy + onnxruntime only — Python CLI, browser (onnxruntime-web), and mobile-friendly weights on Hugging Face.
pip install 'demucs-onnx[mp3]'
demucs-onnx separate song.mp3 out/ --karaoke --mp3- Docs: stemsplit.github.io/demucs-onnx
- Benchmark dataset: StemSplitio/stem-separation-benchmark-2026 — SDR, RTF, and hardware notes
- Prefer hosted inference? Same model family on GPU via the StemSplit API — pay per second of audio.
Get an API key at stemsplit.io/app/settings/api. Set STEMSPLIT_API_KEY in your environment. Full guides: stemsplit.io/developers/guides.
Node.js / TypeScript — @stemsplit/sdk · guide
npm install @stemsplit/sdk
export STEMSPLIT_API_KEY=your_key_hereimport { StemSplit } from "@stemsplit/sdk";
const client = new StemSplit();
const job = await client.jobs.create({
sourceUrl: "https://example.com/song.mp3",
outputType: "FOUR_STEMS",
});
const done = await job.waitForCompletion();
await done.downloadAll("./stems/");Python — stemsplit-python · guide
pip install stemsplit-python
export STEMSPLIT_API_KEY=your_key_herefrom stemsplit_python import StemSplit
client = StemSplit()
job = client.jobs.create(
source_url="https://example.com/song.mp3",
output_type="BOTH",
).wait()
job.download_all("./out/")CLI — guide
brew install StemSplit/tap/stemsplit
export STEMSPLIT_API_KEY=your_key_here
stemsplit separate song.mp3 --output-type BOTH| Project | Install / use | Docs |
|---|---|---|
| stemsplit-mcp | npx -y stemsplit-mcp |
MCP guide |
| n8n-stemsplit | n8n Community Nodes (n8n-nodes-stemsplit) |
n8n guide |
| zapier-stemsplit | Zapier StemSplit integration | Zapier guide |
| stemsplit-github-action | uses: StemSplit/stemsplit-github-action@v0.1.0 |
GitHub Actions guide |
MCP (Cursor, Claude Desktop, Cline, …): add stemsplit-mcp to your MCP config with STEMSPLIT_API_KEY — see the MCP setup guide.
| Resource | Link |
|---|---|
| Hugging Face org | huggingface.co/StemSplitio — ONNX + PyTorch model repos |
| Benchmark dataset | stem-separation-benchmark-2026 |
| API reference | stemsplit.io/developers/reference |
@misc{stemsplit_benchmark_2026,
title = {StemSplit Stem-Separation Benchmark 2026},
author = {StemSplit},
year = {2026},
url = {https://huggingface.co/datasets/StemSplitio/stem-separation-benchmark-2026}
}- Questions & ideas: GitHub Discussions on demucs-onnx
- Bugs: open an issue on the repo you are using (start with demucs-onnx issues for local inference)
- Contributing: see CONTRIBUTING.md on
demucs-onnxand sibling repos - Updates: @StemSplit on X
1 credit = 1 second of audio processed. New accounts include free credits to try the API and integrations. See pricing and free trial.