Awtomatikong salin · Orihinal sa Ingles

HTDemucs & Open-Unmix — 4-Stem Music Division

Hinahati ng Open-Unmix HQ ang isang stereo music track sa apat na independiyenteng tangkay — mga tinig, mga tambol, baho, at iba pa. Apat na independiyenteng modelong BELSTM (isa kada stem) ang lumilikha ng mga masel na magnitude sa halong STFT; isang opsyonal na Wener post-fitter na mga konstruksyon nito. Runs on Apple Silicon via MLX.

May dalawang makina: Open-Unmix HQ (gaan ng timbang, ang default) at ang default HTDemucs (Demucs v4) — isang mas mataas na modelong-quality Hybrid Transformer na pinili na may kasamang mas mataas na model --engine htdemucs. Pareho silang tumatakbo Apple Silicon sa pamamagitan MLX at output na parehong apat na tangkay 44.1 kHz.

Kung ano ito

Arkitektura

Apat na nagsasariling tangkay, bawat isa'y isang kopya ng iisang network:

BagsagHugis / operasyon
PAGTUTOK4096-point FFT, 1024-hop, pana-panahong bintanang Hann, reflect-pad. 2049 frequency bins kada frame.
Ilagay sa normal na paraan Anihan hanggang 1487 bins (imperyo16 kHz), ang aplikasyong pinag-aaralan per-bin ay nangangahulugang + scale mula sa pagsasanay.
Mang - aakitLinear 2974 → 512 + BatchNorm + tangh. Iput ay 2 channel × 1487 bin.
ELSTM3 patong, 256 nakatago kada direksiyon (512 epektibo). Captures temporal konteksto sa ibayo ng frames.
DecoderSkip-concat ng EXTr at LSTM outputs (1024) → Linear 1024 → 512 + BN + ReLU → Liner 512 → 4098.
Ilabas ang denorm + maskara Ang elemento-wise ay nagpaparami na may halong magnitude; phase mula sa halo-halo; iSTFT coup-add.
Wiener (opsiyonal)Power-ratio masks sa lahat ng 4 stem taya. refines phase sot values sumporces to mixed.

Huwaran

Nakikipagtulungan Halaga
Mga Parameter / tangkay8.9M
Ang kabuuan ng parameters (4 tangkay)°35.6M
Bilang ng Sample44.1 kHz stereo
Pagiging huliOffline (full-track STT)
Timbang Aufklarer/OpenUnmix-HQ-MLX (Mga ligtas na tensor, EX136 MB)
PampasulongSigsep/bukas-unmix-pytorch (Stöter et al., JOSS 2019)

HTDemucs (Demucs v4)

Para sa mas mataas na uri ng paghihiwalay — lalo na sa bass at drums — ang pakete ay mga barko rin HTDemucs, Hybrid Transformer Demucs ng Meta. Pinagsanib nito ang isang spectrogram na sanga at isang sangay ng waveform sa pamamagitan ng isang cross-domain transformer; ang shipd htdemucs_ft Ang variant ay isang bag ng apat na mga small-tuned sub-models, isa kada stem. weights download mula sa HuggingFace sa unang paggamit. Sa isang direksiyonal MUSDB-sample benchmark (museval / BSEval v4) ito ay may katamtamang rating +3.01 dB SDR Mahigit sa UMX-HQ, na may pinakamalaking pakinabang sa bass (+5.75 dB).

Nakikipagtulungan Halaga
Mga Parameter168M (4 × 42M na pino-tuned sub-models)
Bilang ng Sample44.1 kHz stereo
Pagmamamasid7.8 s mga bahagi, 25% magkasanib, tatsulok na krus-fade
Timbang Aufklarer/HTDemucs-FT-MLX (fp16, ~320 MB)
PampasulongFacebookrese/demucs (Rouard et al., ICASSP 2023)

Mabilis na simula — 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")
)

Pass wiener: true (default) Para sa pinakamahusay na kalidad. Pasahin ang targets: [.vocals] upang makakuha lamang ng isang subset ng mga tangkay at lagtawan ang iba pang mga modelo.

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

Kung kailan gagamitin

Ang Open-Unmix ay umaakma kapag...

...kailangan mo ng magaang, offline source-separation passes sa loob ng isang app o pipeline sa Apple Silicon. 8.9M params per stem ay nagpapanatili ng download at memory simple. Magnitude-masking plus Ang Wiener ay nagbibigay ng mabubuting tangkay sa karamihan ng pop/rock content. Para sa state-of-the-art vocal na pagbubukod sa studio materyal, lumipat sa browddd. HTDemucs (Demucs v4) sa pamamagitan ng makina --engine htdemucs; Ang Open-Unmix ay nananatiling magaan, barko-in-yo-app na dulo ng tradeoff.