--- license: apache-2.0 base_model: RSNuts/Universal_Source_Separation tags: - mlx - audio - audio-to-audio - source-separation --- # USS ResUNet30 (MLX) Universal source separation — extracts a chosen sound class from a mixture. Converted to MLX from the [ByteDance USS](https://github.com/bytedance/uss) code and the published [RSNuts/Universal_Source_Separation](https://huggingface.co/RSNuts/Universal_Source_Separation) checkpoint. ## Files | file | size | | --- | ---: | | `resunet30_fp32.safetensors` | 102 MiB | | `resunet30_fp16.safetensors` | 51 MiB | ## Precision | precision | size | speed | peak memory | quality vs fp32 | | --- | ---: | ---: | ---: | ---: | | fp32 | 102 MiB | **27.2x** | **1203 MiB** | reference | | fp16 | **51 MiB** | 25.8x | 1259 MiB | 57.3 dB | Bold marks the best value in each column. Quality is fp16 against this model's own fp32 output — the cost of the precision change, not a score for the model. fp16 halves the download. On the machine below it was also slightly slower and used slightly more memory than fp32, since the forward pass dominates the footprint rather than the weights. Measured on an Apple M1 Pro (16 GB), 30 s of audio, three timed runs per configuration; speed is realtime factor. These are single-machine figures — expect different absolute numbers on other hardware, and treat the ordering as indicative rather than guaranteed. ## Conditioning USS is conditioned on a 527-dimensional vector over the [AudioSet](https://research.google.com/audioset/) classes, which selects what the separator extracts. It is an input rather than a model weight and is not shipped here: each vector is a normalised multi-hot indicator over a class group — zero everywhere, `1/n` at each of the `n` chosen indices — so a class list fully determines it. Class indices follow AudioSet's `class_labels_indices.csv`, published by Google with the dataset under CC BY 4.0. ## Used by [AudioToolSwift](https://github.com/starkdmi/AudioToolSwift)