Strojový překlad · Anglický originál
HTDemucs & Open- Unmix - 4-Stem Music Separation
Open- Unmix HQ rozděluje stereo hudební skladbu na čtyři nezávislé stonky - vokály, bubny, okoun, a ostatní. Čtyři nezávislé modely BiLSTM (jeden na kmen) produkují masky velikosti nad směsí STFT; volitelný Wiener post- filtr je sladí. Běží na Apple Silicon přes MLX.
K dispozici jsou dva motory: Open-Unmix HQ (lehké, výchozí) a HTDemucs (Demucs v4) - vysoce kvalitní model Hybrid Transformer vybraný --engine htdemucsOba utíkejte. Apple Silicon prostřednictvím MLX a výstup stejné čtyři stonky na 44.1 kHz.
Odstranit vokály a uložit instrumentální · Rozdělit píseň do čtyř stonků WAV
Co to je?
- 4 stonky na trati - vokály, bicí, baskytary, jiné. Každý je 2-kanál 44.1 kHz kmenový soubor.
- Model masek Magnitude- mask - každý model stonku předpovídá nenegativní masku aplikovanou na spektrogram směsi; ze směsi se odebírá fáze.
- Wiener post- filter (nepovinné) - soft- mask rafinace napříč všemi stonky 4 tak, aby součtem konzistentně zpět do směsi. Přidá ~ 0.5 dB SDR.
- Malá stopa - 8.9M params per stones, ~ 136 MB total for all 4 stones.
- Apache-2.0 - proti proti proti proti závažím pod MIT, naší konverzí CoreML / MLX podle Apache-2.0.
Architektura
Čtyři nezávislé stonky, každá kopie stejné sítě:
| Fáze | Tvar / provoz |
|---|---|
| STFT | 4096- bod FFT, 1024- hop, periodické Hann okno, reflect- pad. 2049 kmitočtové koše na rám. |
| Vstupní normalizace | Cropt to 1487 bins (Ø 16 kHz), aplikujte naučený per- bin průměr + stupnice od tréninku. |
| Enkodér | Linear 2974 → 512 + BatchNorm + tanh. Vstup je 2 kanály × 1487 koše. |
| BiLSTM | 3 vrstvy, 256 skrytých na směr (512 efektivní). Zachycuje časový kontext napříč rámy. |
| Dekodér | Skip- concat encoder a LSTM výstupy (1024) → Linear1024 →512 + BN + ReLU → Lineární512 →4098. |
| Výstupní denorm + maska | Element- wise množit s velikostí směsi; fáze od směsi; iSTFT overlap- add. |
| Wiener (nepovinné) | Power-ratio masky ve všech 4 kmenových odhadů. Retence fáze tak stonky součet na směs. |
Vzor
| Součást | Hodnota |
|---|---|
| Parametry / kmen | 8.9M |
| Parametry celkem (4 stonky) | ~ 35.6M |
| Vzorkovací rychlost | 44,1 kHz stereo |
| Latence chunku | Offline (plnokolejnicový STFT) |
| Váhy | aufklarer / OpenUnmix- HQ-MLX (safetensors, ~ 136 MB) |
| Nahoru | sigsep / open- unmix- pylamper (Stöter et al., JOSS 2019) |
HTDemucs (Demucs v4)
Pro vyšší kvalitu odloučení - zejména na basu a bubnech - balíček také lodě HTDemucs, Meta je hybridní transformátor Demucs. Sloučí spektrogram větve a waveform větve přes cross-domain transformátor; dodávané htdemucs_ft Varianta je taška se čtyřmi fine-laděnými podmodely, jeden na jeden stonek. Váhy stahují z HuggingFace při prvním použití. Na směrovém MUSDB-výběrovém měřítku (museval / BSSEval v4) je průměr + 3.01 dB nad UMX-HQ, s největším ziskem na basu (+ 5.75 dB).
| Součást | Hodnota |
|---|---|
| Parametry | 168M (4 × 42M finined sub-models) |
| Vzorkovací rychlost | 44,1 kHz stereo |
| Windowing | 7.8 s segmenty, 25% překrytí, trojúhelníkový cross- fade |
| Váhy | aufklarer / HTDemucs-FT-MLX (fp16, ~ 320 MB) |
| Nahoru | facebookresearch / demucs (Rouard et al., ICASSP 2023) |
Rychlý start - Swift
import SourceSeparation
import AudioCommon
let separator = try await SourceSeparator.fromPretrained()
let stereo = try AudioFileLoader.loadStereo(
url: URL(fileURLWithPath: "song.wav"),
targetSampleRate: 44100
)
let stems = separator.separate(audio: stereo, sampleRate: 44100)
// stems[.vocals], stems[.drums], stems[.bass], stems[.other]
// Each is [[Float]] — left channel, right channel.
try WAVWriter.writeStereo(
left: stems[.vocals]![0],
right: stems[.vocals]![1],
sampleRate: 44100,
to: URL(fileURLWithPath: "vocals.wav")
)
Projít wiener: true (přednastaveno) pro nejlepší kvalitu. Pass targets: [.vocals] extrahovat pouze podmnožinu stonků a přeskočit ostatní modely.
CLI
speech separate song.wav # all 4 stems into song_stems/ (Open-Unmix)
speech separate song.wav --engine htdemucs # Demucs v4 — higher quality
speech separate song.wav --engine htdemucs --htdemucs-precision int8 # smaller int8 bundle
speech separate song.wav --stems vocals # vocals only
speech separate song.wav --stems vocals,drums # subset
speech separate song.wav --output-dir /tmp/stems/ # custom output dir
speech separate song.wav --verbose # show timing
Kdy k použití
... potřebujete lehký, offline source- separační průsmyk uvnitř aplikace nebo potrubí na Apple Silicon. 8.9M params per stem udržuje stahování a paměť skromná. Magnitude- maskování plus Wiener dává dobré stonky na většině pop / rock obsahu. Pro stateofthe- art hlasová izolace na studiových materiálech, přepnout na sdružené HTDemucs (Demucs v4) motor přes --engine htdemucs; Open- Unmix zůstává lehký, ship-in-your-app konec obchodu.