Was möchtest du herauslösen?
Der Download enthält immer die gewählte Spur separat und zusätzlich den vollständigen Rest ohne diese Spur.
From 0fd1966ae3c85df4be1a36af5233ea1dcc6f5e22 Mon Sep 17 00:00:00 2001 From: Mikei386 <44135113+Mikei386@users.noreply.github.com> Date: Wed, 9 Sep 2026 07:48:26 +0200 Subject: [PATCH] feat: add other stem extraction target --- docs/OPERATING_MODES.md | 6 ++++-- experiments/bs-roformer-vocal-separation/README.md | 7 +++++-- experiments/bs-roformer-vocal-separation/app.py | 1 + experiments/bs-roformer-vocal-separation/index.html | 5 +++-- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/OPERATING_MODES.md b/docs/OPERATING_MODES.md index 2567973..536a84b 100644 --- a/docs/OPERATING_MODES.md +++ b/docs/OPERATING_MODES.md @@ -37,10 +37,12 @@ Docker-Netz `mike-ai-music` auf `http://music-worker:7860` zu. Im Trennmodus öffnet das Dashboard die private Athena-Oberfläche unter `http://192.168.1.212:8007`. Sie nimmt WAV, FLAC, MP3, M4A und weitere übliche Formate an. Gewählt wird die herauszulösende Quelle: Gesang, -Schlagzeug, Bass, Gitarre oder Piano. Das ZIP enthält genau diese Zielspur und +Schlagzeug, Bass, Gitarre, Piano oder Sonstiges. Das ZIP enthält genau diese Zielspur und eine zweite FLAC-Datei mit dem vollständigen Rest ohne die Zielspur. Gesang nutzt BS-RoFormer Viperx 1297, Schlagzeug/Bass `htdemucs_ft` und -Gitarre/Piano experimentell `htdemucs_6s`. Grundlage ist `audio-separator` +Gitarre/Piano/Sonstiges experimentell `htdemucs_6s`. „Sonstiges“ ist dessen +gemischter `other`-Stem (unter anderem Synthesizer, Streicher, Bläser und Effekte), +nicht eine reine Synthesizer-Spur. Grundlage ist `audio-separator` 0.47.0. Die ältere API-Auswahl kompletter 2-/4-/6-Stem-Sätze bleibt rückwärtskompatibel. diff --git a/experiments/bs-roformer-vocal-separation/README.md b/experiments/bs-roformer-vocal-separation/README.md index 0a8d4a0..c5da84f 100644 --- a/experiments/bs-roformer-vocal-separation/README.md +++ b/experiments/bs-roformer-vocal-separation/README.md @@ -13,6 +13,8 @@ Rest ohne dieses Ziel. - **Gitarre oder Piano (experimentell):** `htdemucs_6s.yaml`; auch hier werden alle übrigen Stems wieder zur Restspur zusammengesetzt. Die Instrumentqualität liegt unter der spezialisierten Gesangstrennung. +- **Sonstiges:** der `other`-Stem von `htdemucs_6s.yaml`. Er bündelt unter anderem + Synthesizer, Streicher, Bläser und Effekte und ist keine reine Synthesizer-Spur. - GPU: RTX 5080; LLM, Bildmodelle, TTS und ACE-Step sind dabei verriegelt. - Privat erreichbar: `http://192.168.1.212:8007/` @@ -20,9 +22,10 @@ Die Modelle werden beim ersten Start nach `/data/models/audio-separator` heruntergeladen. Temporäre Jobs liegen unter `/data/audio/separation` und werden nach dem ZIP-Download entfernt. Eigene Spuren für E-/Akustikgitarre, Synthesizer und Streicher sind bewusst noch nicht angeboten: Dafür braucht es -weitere Zielmodelle; sie aus `other` umzubenennen wäre fachlich falsch. +weitere Zielmodelle. Die Oberfläche bietet stattdessen den ehrlich benannten, +gemischten `other`-Stem als **Sonstiges** an. Die API erwartet `multipart/form-data` mit `file` und optional `target`: -`vocals` (Standard), `drums`, `bass`, `guitar` oder `piano`. Das ältere Feld +`vocals` (Standard), `drums`, `bass`, `guitar`, `piano` oder `other`. Das ältere Feld `mode` mit `vocals`, `four_stem` oder `six_stem` bleibt für vorhandene Clients erhalten und liefert weiterhin alle Modell-Stems. diff --git a/experiments/bs-roformer-vocal-separation/app.py b/experiments/bs-roformer-vocal-separation/app.py index 067032f..3d7cecf 100644 --- a/experiments/bs-roformer-vocal-separation/app.py +++ b/experiments/bs-roformer-vocal-separation/app.py @@ -33,6 +33,7 @@ TARGETS = { "bass": {"mode": "four_stem", "stem": "bass", "archive": "athena-bass-und-rest.zip", "rest_file": "rest-ohne-bass.flac"}, "guitar": {"mode": "six_stem", "stem": "guitar", "archive": "athena-gitarre-und-rest.zip", "rest_file": "rest-ohne-gitarre.flac"}, "piano": {"mode": "six_stem", "stem": "piano", "archive": "athena-piano-und-rest.zip", "rest_file": "rest-ohne-piano.flac"}, + "other": {"mode": "six_stem", "stem": "other", "archive": "athena-sonstiges-und-rest.zip", "rest_file": "rest-ohne-sonstiges.flac"}, } app = FastAPI(title="Athena Stem Separator", version="2.0") diff --git a/experiments/bs-roformer-vocal-separation/index.html b/experiments/bs-roformer-vocal-separation/index.html index b0ec9a5..c5129f2 100644 --- a/experiments/bs-roformer-vocal-separation/index.html +++ b/experiments/bs-roformer-vocal-separation/index.html @@ -1,7 +1,7 @@
Der Download enthält immer die gewählte Spur separat und zusätzlich den vollständigen Rest ohne diese Spur.