Konekäännös · Englanninkielinen alkuperäinen
HTDemucs & Open- Unmix ... 4- kantamusiikkiero
Open-Unmix päämaja jakaa stereomusiikkiraidan neljään itsenäiseen varteen vokaalit, rummut, basso, muu. Neljä itsenäistä BiLSTM-mallia (yksi runkoa kohti) tuottaa mittanaamioita seokseen STFT; valinnainen Wiener jälkisuodin sovittaa ne yhteen. Apple Silicon via MLX.
Saatavana on kaksi moottoria: Avoin-Unmix HQ (kevyt, oletusarvo) ja HTDemucs (Demucsin v4) . Korkealaatuisempi Hybridimuuntajamalli, joka on valittu --engine htdemucs. Molemmat toimivat Apple Silicon via MLX ja tuottavat samat neljä vartta 44.1 kHz:ssä.
Poista laulut ja tallenna instrumentti · Jaa kappale neljään WAV varret
Mitä se on?
- 4 varret raitaa kohti . Jokainen on 2-kanavainen 44.1 kHz-kantatiedosto.
- Mitnogenation-mask malli ...
- Wiener jälkisuodatin (valinnainen) ... Pehmeän naaman viimeistely kaikissa 4 varressa, joten ne tiivistävät johdonmukaisesti takaisin seokseen. Lisää ~0,5 dB SDR.
- pieni jalanjälki 8,9M paraateja runkoa kohti, ~136 MB yhteensä kaikille 4 varrelle.
- Apache-2.0 MIT:n yläjuoksun painot, CoreML/MLX-muunnos Apache-2.0.
Arkkitehtuuri
Neljä itsenäistä vartta, kukin kopio samasta verkosta:
| Vaihe | Muoto / toiminta |
|---|---|
| STFT | 4096-pisteen FFT, 1024-hop, ajoittainen Hann-ikkuna, heijastuslevy. 2049 taajuusastiaa per runko. |
| Syöttö normalisoidaan | Crop to 1487 bins (...16 kHz), sovelletaan oppinut per-bin keskiarvo + mittakaavan koulutuksen. |
| Koodain | Lineaarinen 2974 → 512 + BatchNorm + tanh. Syöte on 2 kanavaa × 1487 bins. |
| BiLSTM | 3 kerrosta, 256 piilotettua suuntaan (512 tehokas). |
| Purkaja | Koodaimen ja LSTM:n lähtöjen ohituskatkos (1024) → Lineaarinen 1024 → 512 + BN + ReLU → Linear 512 → 4098. |
| Output denorm + maski | Elementin mukaan kertominen seoksen voimakkuudella; seoksen vaihe; iSTFT-lisäys päällekkäin. |
| Wiener (valinnainen) | Power-ratio naamiot kaikissa 4 runko-estimaateissa. Refliinien vaihe niin varret yhteen seoksesta. |
Malli
| Osa | Arvo |
|---|---|
| Parametrit / runko | 8,9M |
| Parametrit yhteensä (4 vartta) | ~35.6M |
| Näytteenottotaajuus | 44,1 kHz:n stereot |
| Chunk latenssi | Offline (täydellinen STFT) |
| Painot | aufklarer/OpenUnmix-HQ-MLX (suojaimet, ~136 MB) |
| Ylävirta | sigsep/open-unmix-pytorch (Stöter et al., JOSS 2019) |
HTDemucs (Demucs v4)
Korkeampi erotus laatu ... erityisesti basso ja rummut... paketti myös aluksia. HTDemucs, Meta's Hybrid Transformer Demucs. Se yhdistää spektrogrammin haara ja aaltomuodon haara kautta cross-dominal muuntaja; lähetetty htdemucs_ft variantti on pussi neljä hienosäänneltyä alamallia, yksi per runko. Painot ladataan HuggingFace Ensimmäinen käyttö. Suunnallisella MUSDB-näytteen vertailuarvolla (museo / BSSEval v4) keskiarvot +3.01 dB SDR UMX-HQ:n osalta suurimmat voitot bassosta (+5.75 dB).
| Osa | Arvo |
|---|---|
| Parametrit | 168M (4 × 42M hienonnetut alamallit) |
| Näytteenottotaajuus | 44,1 kHz:n stereot |
| Ikkuna | 7.8 s segmentit, 25% päällekkäisyyksiä, kolmiomainen ristikato |
| Painot | aufklarer/HTDemucs-FT-MLX (fp16, ~320 MB) |
| Ylävirta | facebookresearch/demucs (Rouard et al., ICASSP 2023) |
Pikakäynnistys 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")
)
Ohita wiener: true (oletus) parhaan laadun. Pass targets: [.vocals] poimia vain osajoukko varret ja ohittaa muut mallit.
KLI
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
Milloin valmistetta käytetään
... tarvitset kevyt, offline lähde-erotuspassin sisällä sovelluksen tai putki Apple Silicon. 8.9M params per varsi pitää ladata ja muisti vaatimaton.Mitobility-maskit plus Wiener antaa hyvät varret useimmat pop/rock sisältöä. HTDemucs (Demucs v4) moottorin kautta --engine htdemucs; Open-Unmix on edelleen kevyt, aluksen-in-app-pää vaihtokauppa.