Traducere automată · Originalul în engleză
HTDemucs & Deschis- unmix 4-Stem Muzica separare
Open-Unmix HQ împarte o piesă de muzică stereo în patru tulpini independente voce, tobe, BassCity in Germany, și altele. Patru modele independente BiLSTM (unul per tulpină) produc măști de magnitudine peste amestecul STFT; un postfiltru Wiener opțional le reconciliază. Rulează pe Apple Silicon prin MLX.
Sunt disponibile două motoare: Open-Unmix HQ (greutate ușoară, implicit) și HTDemucs (Demucs v4) Un model Hibrid Transformer de calitate superioară selectat cu --engine htdemucs Ambele rulați pe Apple Silicon prin MLX și de ieșire aceleași patru tulpini la 44.1 kHz.
Remove vocals and save an instrumental · Split a song into four WAV trends
Ce este?
- Tulpini de 4 pe linie Fiecare este un fişier stem 2-canal 44.1 kHz.
- Model Mask de dimensiune
- După filtrul Wiener (opțional) Soft-mask rafinament pe toate tulpinile 4 astfel încât acestea să se rezume coerent înapoi la amestec. Adăugați ~0.5 dB .
- Amprentă mică 8.9M params per stem, ~136 MB total pentru toate tulpinile 4.
- Apache-2.0 În cazul în care nu se utilizează metoda de calcul, se utilizează o metodă de calcul pentru a calcula valoarea medie ponderată a expunerii. MIT, nostru CoreML/MLX Conversia în Apache-2.0.
Arhitectură
Patru tulpini independente, fiecare o copie a aceleiași rețele:
| Etape | Forma / funcționarea |
|---|---|
| STFT | 4096-punct FFT, 1024-hop, fereastra periodica Hann, reflect-pad. 2049 containere de frecventa pe cadru. |
| Normalizează intrarea | Recoltă la 1487 coșuri de gunoi (2012/16 kHz), se aplică mediile învățate perbin + scala de la formare. |
| Codor | Liniar 2974 → 512 + BatchNorm + tanh. Intrarea este de 2 canale × 1487 containere. |
| BiLSTM | 3 straturi, 256 ascunse pe directie (512 eficient). Captureaza context temporal peste rame. |
| Decodor | Skip-concat de codor și ieșiri LSTM (1024) → Linear 1024 → 512 + BN + ReLU → Liniar 512 → 4098. |
| Denorm de ieșire + mască | Se multiplică în mod Element-înțelept cu magnitudinea amestecului; fază din amestec; iSTFT se suprapune-add. |
| Wiener (opțional) | Măştile de proporţii electrice de-a lungul tuturor celor 4 estimări stem. |
Model
| Componentă | Valoare |
|---|---|
| Parametrii / tulpina | 8,9M |
| Parametrii totali (4 tulpini) | ~35.6M |
| Rata de eșantionare | stereo 44.1 kHz |
| Latenţă de bucată | Offline (Full-track STFT) |
| Greutate | aufklarer/OpenUnmix-HQ-MLX (safetensions, ~136 MB) |
| În amonte | sigsep/open-unmix-pytorch (Stöter et al., JOSS 2019) |
HTDemucs (Demucuri v4)
Pentru o calitate mai mare a separării HTDemucs, Meta's Hybrid Transformer Demucs. Acesta unește o ramură spectrogramă și o ramură de undă printr-un transformator cross-domeniu; expediate htdemucs_ft varianta este o pungă de patru submodele fin tunate, unul pe stem. Greutate descărcare de la HuggingFace pe prima utilizare. Pe un reper direcție MUSDB-eșantion (museval / BSSEval v4) se mediează +3.01 dB DST peste UMX-HQ, cu cele mai mari câștiguri la bass (+5.75 dB).
| Componentă | Valoare |
|---|---|
| Parametrii | 168M (4 × 42M submodele bine reglate) |
| Rata de eșantionare | stereo 44.1 kHz |
| Fereastra | Segmente de 7,8 s, 25% suprapunere, triangular cross-fade |
| Greutate | aufklaer/HTDemucs-FT-MLX (fp16, ~320 MB) |
| În amonte | Facebook research/demucs (Rouard et al., ICASSP 2023) |
Start rapid 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")
)
Pasează wiener: true (default) pentru cea mai bună calitate. Pass targets: [.vocals] pentru a extrage doar un subset de tulpini și sări peste celelalte modele.
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
Când să utilizaţi
... aveți nevoie de o trecere ușoară, offline sursă-separare în interiorul unei aplicații sau conducte pe Apple Silicon. 8.9M params per stem păstrează descărcare și memorie modestă. Magnitudine-masculare plus Wiener oferă tulpini bune pe cel mai pop/rock conținut. Pentru izolare vocală de ultimă generație pe material studio, comutați la pachet HTDemucs (Demucuri v4) motor prin --engine htdemucs; Open-Unmix rămâne ușor, nava-in-your-ap-end al comerțului.