Instructions to use nvidia/RE-USE with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MambaSSM
How to use nvidia/RE-USE with MambaSSM:
from mamba_ssm import MambaLMHeadModel model = MambaLMHeadModel.from_pretrained("nvidia/RE-USE") - Notebooks
- Google Colab
- Kaggle
RE-USE on Apple Silicon: MLX weights + native macOS app/CLI (faster-than-realtime for stereo at 44.1 / 48 kHz on M1 Max)
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)
- Repository: https://github.com/faraday/SpeechLens
- MLX weights: https://huggingface.co/faraday/re-use-mlx (derived from NVIDIA's checkpoint)
- App: https://github.com/faraday/SpeechLens/releases/download/v1.0/SpeechLens-1.0.dmg
- CLI: https://github.com/faraday/SpeechLens/releases/download/v1.0/speechlens-cli-1.0.zip
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:
- Yehor Smoliakov's re-use-mlx and re-use-swift-mlx.
- Justin Chu's
onnxruntime-mlx, which runs RE-USE via ONNX Runtime and introduced a fused Metal kernel for Mamba selective scan (onnxruntime-mlx#49 / mobius#551).
This is an independent port and is not affiliated with NVIDIA. Thanks to the RE-USE authors for releasing the model.
- Çağatay