sherpa-onnx C API 1.0
Public C API and C++ wrapper for sherpa-onnx
Loading...
Searching...
No Matches
Speech Enhancement / Denoising

sherpa-onnx supports both offline and online speech enhancement with two model families: GTCRN and DPDFNet.

See also
SherpaOnnxCreateOfflineSpeechDenoiser, SherpaOnnxCreateOnlineSpeechDenoiser

Offline GTCRN

memset(&config, 0, sizeof(config));
config.model.gtcrn.model = "./gtcrn_simple.onnx";
config.model.num_threads = 1;
config.model.provider = "cpu";
const SherpaOnnxDenoisedAudio *denoised =
SherpaOnnxOfflineSpeechDenoiserRun(sd, wave->samples, wave->num_samples,
wave->sample_rate);
SherpaOnnxWriteWave(denoised->samples, denoised->n, denoised->sample_rate,
"./clean.wav");
struct SherpaOnnxOfflineSpeechDenoiser SherpaOnnxOfflineSpeechDenoiser
Opaque offline speech denoiser handle.
Definition c-api.h:4119
void SherpaOnnxDestroyOfflineSpeechDenoiser(const SherpaOnnxOfflineSpeechDenoiser *sd)
Destroy an offline speech denoiser.
const SherpaOnnxDenoisedAudio * SherpaOnnxOfflineSpeechDenoiserRun(const SherpaOnnxOfflineSpeechDenoiser *sd, const float *samples, int32_t n, int32_t sample_rate)
Run offline speech denoising on a complete waveform.
const SherpaOnnxOfflineSpeechDenoiser * SherpaOnnxCreateOfflineSpeechDenoiser(const SherpaOnnxOfflineSpeechDenoiserConfig *config)
Create an offline speech denoiser.
int32_t SherpaOnnxWriteWave(const float *samples, int32_t n, int32_t sample_rate, const char *filename)
Write floating-point PCM to a mono 16-bit WAVE file.
void SherpaOnnxDestroyDenoisedAudio(const SherpaOnnxDenoisedAudio *p)
Destroy denoised audio returned by a speech enhancement API.
Denoised audio returned by offline or online speech enhancement APIs.
Definition c-api.h:4164
const float * samples
Definition c-api.h:4166
Configuration for offline speech denoising.
Definition c-api.h:4113
SherpaOnnxOfflineSpeechDenoiserModelConfig model
Definition c-api.h:4115
SherpaOnnxOfflineSpeechDenoiserGtcrnModelConfig gtcrn
Definition c-api.h:4101

Model file: gtcrn_simple.onnx

Example source: speech-enhancement-gtcrn-c-api.c

Offline DPDFNet

memset(&config, 0, sizeof(config));
config.model.dpdfnet.model = "./dpdfnet_baseline.onnx";
config.model.num_threads = 1;
config.model.provider = "cpu";
// ... use sd ...
SherpaOnnxOfflineSpeechDenoiserDpdfNetModelConfig dpdfnet
Definition c-api.h:4109

Model file: dpdfnet_baseline.onnx (also: dpdfnet2.onnx, dpdfnet4.onnx, dpdfnet8.onnx for 16 kHz; dpdfnet2_48khz_hr.onnx for 48 kHz)

Example source: speech-enhancement-dpdfnet-c-api.c

Online GTCRN

memset(&config, 0, sizeof(config));
config.model.gtcrn.model = "./gtcrn_simple.onnx";
config.model.num_threads = 1;
config.model.provider = "cpu";
int32_t frame_shift =
// Feed audio in frame_shift chunks, then flush
void SherpaOnnxDestroyOnlineSpeechDenoiser(const SherpaOnnxOnlineSpeechDenoiser *sd)
Destroy an online speech denoiser.
struct SherpaOnnxOnlineSpeechDenoiser SherpaOnnxOnlineSpeechDenoiser
Opaque online speech denoiser handle.
Definition c-api.h:4217
const SherpaOnnxOnlineSpeechDenoiser * SherpaOnnxCreateOnlineSpeechDenoiser(const SherpaOnnxOnlineSpeechDenoiserConfig *config)
Create an online speech denoiser.
int32_t SherpaOnnxOnlineSpeechDenoiserGetFrameShiftInSamples(const SherpaOnnxOnlineSpeechDenoiser *sd)
Return the recommended chunk size in samples for streaming input.
const SherpaOnnxDenoisedAudio * SherpaOnnxOnlineSpeechDenoiserFlush(const SherpaOnnxOnlineSpeechDenoiser *sd)
Flush buffered samples and reset the online denoiser.
Configuration for streaming speech denoising.
Definition c-api.h:4211
SherpaOnnxOfflineSpeechDenoiserModelConfig model
Definition c-api.h:4213

Model file: gtcrn_simple.onnx

Example source: online-speech-enhancement-gtcrn-c-api.c

Online DPDFNet

memset(&config, 0, sizeof(config));
config.model.dpdfnet.model = "./dpdfnet_baseline.onnx";
config.model.num_threads = 1;
config.model.provider = "cpu";
// ... use sd ...

Model file: dpdfnet_baseline.onnx

Example source: online-speech-enhancement-dpdfnet-c-api.c