Maskinoversettelse · Engelsk original

HTDemucs & Open-Umix — 4-Stem musikkseparering

Open-Umix HQ deler et stereo musikkspor i fire uavhengige stengler - vokal, drommer, bass, og andre. Fire uavhengige BiLSTM-modeller (en per stamme) produserer størrelsesmasker over blandingen STFT; et valgfritt Wiener-postfilter forener dem. Kjører på Apple Silicon via MLX.

To motorer er tilgjengelige: Open-Unmix HQ (litenvekt, standard) og HTDemucs (Demucs v4) - en Hybrid Transformer-modell av høyere kvalitet valgt med --engine htdemucs. Begge kjører på Apple Silicon via MLX og skriver ut de samme fire stemplene ved 44.1 kHz.

Hva det er

Arkitektur

Fire uavhengige stengler, hver kopi av samme nettverk:

StageForm/operasjon
STFT4096-punkt FFT, 1024-hop, periodisk Hann-vindu, reflekteringsplate. 2049 frekvensbokser per ramme.
Inngang normalisereBeskjær til 1487 bins (-16 kHz), påfør lærde per-bin middel + skala fra trening.
Koder Linje 2974 → 512 + BatchNorm + tanh. Inngang er 2 kanaler × 1487 bins.
BiLSTM3 lag, 256 skjult per retning (512 effektiv). Fanger tidsmessig kontekst på tvers av rammer.
Dehydrering Hopp-konkat av koder og LSTM-utganger (1024) → Linear 1024 → 512 + BN + ReLU → Linear 512 → 4098.
Utgangsdenorm + maskeElementvis multipliseres med blandingsstørrelse; fase fra blanding; iSTFT overlapp-add.
Wiener (valgfritt) Strømforholdsmasker på tvers av alle 4 stamestimater. Refenser fase så stilker sum til blanding.

Modell

Komponent Verdi
Parametre / stengel8.9M
Parametre totalt (4 stengler)~35.6M
Samplingsrate44.1 kHz stereo
Chunk latencyFrakoblet (fullsporet STFT)
Vekteraufklarer/OpenUnmix-HQ-MLX (sikrere, ~136 MB)
Upstreamsigsep/open-unmix-pytorch (Stöter et al., JOSS 2019)

HTDemucs (demucs v4)

For høyere separasjon kvalitet - spesielt på bass og trommer - pakken også skip HTDemucsMeta's Hybrid Transformer Demucs. Den smelter sammen en spektrogramgren og en bølgeform gren gjennom en tverrdomene transformator; den fraktede htdemucs_ft varianten er en pose med fire finjusterte undermodeller, en per stang. Vekter lastes ned fra HuggingFace på første bruk. På en retningsbestemt MUSDB-prøve benchmark (museval / BSSEval v4) det i gjennomsnitt +3.01 DB SDR over UMX-HQ, med de største gevinstene på bass (+5.75 dB).

Komponent Verdi
Parametre168M (4 × 42M finjustert undermodell)
Samplingsrate44.1 kHz stereo
Vindu7.8 s segmenter, 25% overlapp, trekantet tverrfase
Vekteraufklarer/HTDemucs-FT-MLX (fp16, ~320 MB)
Upstreamfacebookresearch/demucs (Rouard et al., ICASSP 2023)

Rask 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")
)

Pass wiener: true (standard) for beste kvalitet. Pass targets: [.vocals] å trekke ut bare en del av stengler og hoppe over de andre modellene.

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

Når du skal bruke

Åpen-Unmix passer når...

...du trenger en lett, offline kilde-separasjon passere inne i en app eller rørledning på Apple Silicon. 8.9M params per stamme holder nedlasting og minne beskjeden. Magnitude-maskating pluss Wiener gir gode stengler på det meste pop/rock innhold. For state-of-the-art vokal isolasjon på studio materiale, bytte til den pakkede HTDemucs (Demuc. v4) motor via --engine htdemucs; Open-Umix forblir den lette, skip-in-the-app-end of the trade.