sherpa-onnx C API 1.0
Public C API and C++ wrapper for sherpa-onnx
Loading...
Searching...
No Matches
Source Separation

Table of Contents

sherpa-onnx supports source separation through the SherpaOnnxCreateOfflineSourceSeparation() API. Configure exactly one model family by filling in the corresponding field of SherpaOnnxOfflineSourceSeparationModelConfig.

See also
SherpaOnnxCreateOfflineSourceSeparation, SherpaOnnxOfflineSourceSeparationConfig

Spleeter

Spleeter separates audio into vocals and accompaniment (2 stems).

memset(&config, 0, sizeof(config));
"./sherpa-onnx-spleeter-2stems-fp16/vocals.fp16.onnx";
"./sherpa-onnx-spleeter-2stems-fp16/accompaniment.fp16.onnx";
config.model.num_threads = 1;
config.model.provider = "cpu";
// ... use ss ...
const SherpaOnnxOfflineSourceSeparation * SherpaOnnxCreateOfflineSourceSeparation(const SherpaOnnxOfflineSourceSeparationConfig *config)
Create a source-separation engine.
void SherpaOnnxDestroyOfflineSourceSeparation(const SherpaOnnxOfflineSourceSeparation *ss)
Destroy a source-separation engine.
struct SherpaOnnxOfflineSourceSeparation SherpaOnnxOfflineSourceSeparation
Opaque source-separation engine handle.
Definition c-api.h:4409
Top-level source-separation configuration.
Definition c-api.h:4404
SherpaOnnxOfflineSourceSeparationModelConfig model
Definition c-api.h:4405
SherpaOnnxOfflineSourceSeparationSpleeterModelConfig spleeter
Definition c-api.h:4396

Model package: sherpa-onnx-spleeter-2stems-fp16

Example source: source-separation-spleeter-c-api.c

UVR (MDX-Net)

UVR separates audio into vocals and non-vocals.

memset(&config, 0, sizeof(config));
config.model.uvr.model = "./UVR-MDX-NET-Voc_FT.onnx";
config.model.num_threads = 1;
config.model.provider = "cpu";
// ... use ss ...
SherpaOnnxOfflineSourceSeparationUvrModelConfig uvr
Definition c-api.h:4397

Model file: UVR-MDX-NET-Voc_FT.onnx

Example source: source-separation-uvr-c-api.c