Ir para o conteúdo
ModelListadosExterno
Baixar

Cocktail Fork MRX

Apple MLX port of MERL's MRX (Multi-Resolution CrossNet) — separates a soundtrack mixture into three stems: music, speech, and sound effects (sfx). Runs natively on Apple Silicon, no PyTorch at inference.

TipoOtherVersãoRevision d3ab4a5Bnota

Fonte do modelo

Tipo
Other
Tamanho do arquivo
117 MB
Versão
vRevision d3ab4a5
Atualizado
25 de out. de 2026
Downloads
46
Fonte
Hugging Face

Descrição da fonte

Cocktail-Fork-MRX (MLX)

Apple MLX port of MERL's MRX (Multi-Resolution CrossNet) — separates a soundtrack mixture into three stems: music, speech, and sound effects (sfx). Runs natively on Apple Silicon, no PyTorch at inference.

  • Upstream: merlresearch/cocktail-fork-separation — The Cocktail Fork Problem: Three-Stem Audio Separation for Real-World Soundtracks (ICASSP 2022).
  • Checkpoint: default_ (SNR-loss trained — the upstream default inference weights).
  • Variants: -paper (SI-SNR, ICASSP reproduction) · -adapted-loudness · -adapted-eq (cinematic-tuned for real movie stems).
  • Collection: Cocktail-Fork MRX (MLX).
  • License: MIT.
  • Parity: numerically exact vs the PyTorch reference (full-pipeline max_abs ≈ 9e-8; per-stem SI-SDR 107–139 dB vs torch).

Usage

pip install cocktail-fork-mlx   # or: pip install git+https://github.com/xocialize/cocktail-fork-mlx
cocktail-fork-mlx --audio-path soundtrack.wav --out-dir ./out
# -> out/music.wav  out/speech.wav  out/sfx.wav
import mlx.core as mx, soundfile as sf, numpy as np
from cocktail_fork_mlx.separate import separate_soundtrack
from cocktail_fork_mlx.weights import from_pretrained

audio, fs = sf.read("soundtrack.wav", always_2d=True)   # 44.1 kHz
model = from_pretrained("mlx-community/Cocktail-Fork-MRX")
stems = separate_soundtrack(mx.array(audio.T.astype("float32")), model)
for name, x in stems.items():
    sf.write(f"{name}.wav", np.array(x).T, 44100)

Model

  • 44.1 kHz, any channel count. ~30.6M params, fp32 (122 MB).
  • Multi-resolution STFT (windows 1024/2048/8192, hop 256) → per-resolution magnitude encoders → 3 parallel bidirectional CrossNet LSTMs → per-source/per-resolution mask decoders → masked iSTFT summed across resolutions.
  • CPU is the faster device for this LSTM-bound model (default in the CLI).

Ported by MVS Collective (xocialize). MIT, © MERL for the original model/weights.

Fontes

1 fonte
Hugging FacePrimárioVersão d3ab4a5ddf3a9d23fa4693f3caa24ccb29a7001e
huggingface.co/mlx-community/Cocktail-Fork-MRX/tree/d3ab4a5ddf3a9d23fa4693f3caa24ccb29a7001e

Verificado 25 de out.

Artefatos de modelo

1 artefato

model.safetensors

safetensors · 117 MB · SHA-256 17244f6f1ded…9884 · Hugging Face

Download file

Trechos de fonte

3 trechos

--- license: mit library_name: mlx tags: - mlx - audio - audio-source-separation - speech - music - apple-silicon pipeline_tag: audio-to-audio --- # Cocktail-Fork-MRX (MLX) Apple **MLX** port of MERL's **MRX** (Multi-Resolution CrossNet) — separates a soundtrack mixture into three stems: **music**, **speech**, and **sound effects (sfx)**. Runs natively on Apple Silicon, no PyTorch at inference. - **Upstream:** [merlresearch/cocktail-fork-separation](https://github.com/merlresearch/cocktail-fork-separation) — *The Cocktail Fork Problem: Three-Stem Audio Separation for Real-World Soundtracks* (ICASSP 2022). - **Checkpoint:** `default_` (SNR-loss trained — the upstream default inference weights). - **Variants:** [`-paper`](https://huggingface.co/mlx-community/Cocktail-Fork-MRX-paper) (SI-SNR, ICASSP reproduction) · [`-adapted-loudness`](https://huggingface.co/mlx-community/Cocktail-Fork-MRX-adapted-loudness) · [`-adapted-eq`](https://huggingface.co/mlx-community/Cocktail-Fork-MRX-adapted-eq) (cinematic-tuned for real movie stems). - **Collection:** [Cocktail-Fork MRX (MLX)](https://huggingface.co/collections/mlx-community/cocktail-fork-mrx-mlx-6a233f3f10f42cd5e654af23). - **License:** MIT. - **Parity:** numerically exact vs the PyTorch reference (full-pipeline max_abs ≈ `9e-8`; per-stem SI-SDR 107–139 dB vs torch). ## Usage ```bash pip install cocktail-fork-mlx # or: pip install git+https://github.com/xocialize/cocktail-fork-mlx cocktail-fork-mlx --audio-path soundtrack.wav --out-dir ./out # -> out/music.wav out/speech.wav out/sfx.wav ``` ```python import mlx.core as mx, soundfile as sf, numpy as np from cocktail_fork_mlx.separate import separate_soundtrack from cocktail_fork_mlx.weights import from_pretrained audio, fs = sf.read("soundtrack.wav", always_2d=True) # 44.1 kHz model = from_pretrained("mlx-community/Cocktail-Fork-MRX") stems = separate_soundtrack(mx.array(audio.T.astype("float32")), model) for name, x in stems.items(): sf.write(f"{name}.wav", np.array(x).T, 44100) ``` ## Model - 44.1 kHz, any channel count. ~30.6M params, fp32 (122 MB). - Multi-resolution STFT (windows 1024/2048/8192, hop 256) → per-resolution magnitude encoders → 3 parallel bidirectional CrossNet LSTMs → per-source/per-resolution mask decoders → masked iSTFT summed across resolutions. - CPU is the faster device for this LSTM-bound model (default in the CLI)....

Source context: 46 downloads · 1 likes · Pipeline audio-to-audio · Library mlx · Repo mlx-community/Cocktail-Fork-MRX

Source context: 17 downloads · 1 likes · Pipeline audio-to-audio · Library mlx · Repo mlx-community/Cocktail-Fork-MRX