RE-USE on Apple Silicon: MLX weights + native macOS app/CLI (faster-than-realtime for stereo at 44.1 / 48 kHz on M1 Max)

#4
by faraday - opened

I'm the author of SpeechLens, a native macOS menu bar app and CLI that runs RE-USE on Apple Silicon via Swift/MLX/Metal.
It keeps the input's sample rate, frame count and channel layout, so stereo files come back as stereo.
(Channels are enhanced serially, so expect roughly twice the mono times below)

Speed over long inputs (~2 min), with 5-second chunks, 0% overlap:

(RTF: Real-time factor = enhancement time / audio duration; lower is better, <1.0 is faster than realtime)

rate recording enhancement time RTF (default) RTF (--strict) RTF (NVIDIA reference, PyTorch/CUDA on L4)
16 kHz CHiME-6, 120.0 s 14.99 s 0.125 0.139 0.115
44.1 kHz CORAAL, 120.0 s 44.57 s 0.371 0.381 0.330
48 kHz Edinburgh noisy speech (concatenated), 120.7 s 45.33 s 0.375 0.407 0.359

Within roughly 4-12% of NVIDIA's reference on an L4.

RTF per each different setting:

setting 16 kHz 44.1 kHz 48 kHz
5 s chunks, 0% overlap 0.125 0.371 0.375
same, --strict 0.139 0.381 0.407
5 s chunks, 10% overlap 0.140 0.391 0.415
5 s chunks, 50% overlap 0.249 0.699 0.740
10 s chunks, 0% overlap 0.131 0.348 0.385
10 s chunks, 10% overlap 0.146 0.386 0.426
10 s chunks, 50% overlap 0.257 0.681 0.750

Release build, M1 Max 64 GB, macOS 26.5, MLX Swift 0.31.6. Measurements above cover the enhancement (including STFT/iSTFT).
--strict selects a phase-tight selective-scan kernel that was about 6-7% slower in benchmarks.

Numerical Parity vs. PyTorch Reference

To verify that the custom Metal selective scan kernels do not introduce audio artifacts or drift, here is the reconstruction error on a 5-second 44.1 kHz input compared against the original PyTorch CUDA reference:

Implementation Waveform Rel. RMSE Max Magnitude Diff Max Phase Diff Failing Bins
SpeechLens (Default) 1.10e-05 0.000164 0.010572 25
SpeechLens (--strict) 3.15e-06 0.000154 0.001121 0

SpeechLens default provides fast throughput with negligible error, while --strict eliminates out-of-tolerance bins and tightens phase alignment by an order of magnitude for sensitive workflows.


Related Work

I also want to highlight great independent work in the community:

This is an independent port and is not affiliated with NVIDIA. Thanks to the RE-USE authors for releasing the model.

- Çağatay

Sign up or log in to comment