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:4331
Top-level source-separation configuration.
Definition c-api.h:4326
SherpaOnnxOfflineSourceSeparationModelConfig model
Definition c-api.h:4327
SherpaOnnxOfflineSourceSeparationSpleeterModelConfig spleeter
Definition c-api.h:4318

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:4319

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

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