Speech Denoiser API
Speech denoising API reference for sherpa-onnx-node.
Source file
API
OfflineSpeechDenoiser
Removes background noise from a complete audio recording.
Constructor
const denoiser = new sherpa_onnx.OfflineSpeechDenoiser(config);
- param config
Configuration object with:
model(object, optional) — Model configuration with one of:gtcrn—{ model: string }path to the GTCRN ONNX model.dpdfnet—{ model: string, attenuationLimitDb?: number }. The attenuation limit is offline-only, defaults to0(disabled), and accepts finite values in[0, 100]; infinity also disables it.
Plus common fields:
numThreads,debug,provider.
Methods
denoiser.run(obj)
Run denoising on the input audio.
- param obj
Audio request object with:
samples(Float32Array) — Audio samples in[-1, 1].sampleRate(number) — Sample rate in Hz.enableExternalBuffer(boolean, optional, defaulttrue).
- returns
A
GeneratedAudioobject withsamples(Float32Array) andsampleRate(number).
Properties
denoiser.config— The configuration object.denoiser.sampleRate— Expected input sample rate in Hz (number).
OnlineSpeechDenoiser
Removes background noise from audio in a streaming fashion.
Constructor
const denoiser = new sherpa_onnx.OnlineSpeechDenoiser(config);
- param config
Configuration object with:
model(object, optional) — Model configuration with one of:gtcrn—{ model: string }path to the GTCRN ONNX model.dpdfnet—{ model: string }path to the DPDFNet ONNX model. All official 8, 16, and 48 kHz DPDFNet streaming exports are supported.
Plus common fields:
numThreads,debug,provider.
Methods
denoiser.run(obj)
Process a chunk of audio.
- param obj
Audio request object with:
samples(Float32Array) — Audio samples in[-1, 1].sampleRate(number) — Sample rate in Hz.enableExternalBuffer(boolean, optional, defaulttrue).
- returns
A
GeneratedAudioobject withsamples(Float32Array) andsampleRate(number).
denoiser.flush(enableExternalBuffer?)
Flush remaining buffered audio and return denoised output.
- param enableExternalBuffer
Whether to use an external buffer (
boolean, defaulttrue).- returns
A
GeneratedAudioobject withsamples(Float32Array) andsampleRate(number).
denoiser.reset()
Reset the internal state for reuse.
Properties
denoiser.config— The configuration object.denoiser.sampleRate— Expected input sample rate in Hz (number).denoiser.frameShiftInSamples— Frame shift in samples (number).
Example
const sherpa_onnx = require('sherpa-onnx-node');
// Offline denoising
const denoiser = new sherpa_onnx.OfflineSpeechDenoiser({
model: { gtcrn: './gtcrn.onnx' },
});
const wave = sherpa_onnx.readWave('./noisy-audio.wav');
const denoised = denoiser.run({
samples: wave.samples,
sampleRate: wave.sampleRate,
});
sherpa_onnx.writeWave('clean-audio.wav', {
samples: denoised.samples,
sampleRate: denoised.sampleRate,
});
// Online denoising
const onlineDenoiser = new sherpa_onnx.OnlineSpeechDenoiser({
model: { gtcrn: './gtcrn.onnx' },
});
// Process chunks as they arrive
const chunk1 = onlineDenoiser.run({ samples: audioChunk1, sampleRate: 16000 });
const chunk2 = onlineDenoiser.run({ samples: audioChunk2, sampleRate: 16000 });
const remaining = onlineDenoiser.flush();
onlineDenoiser.reset(); // ready for next audio
Notes
OfflineSpeechDenoiserprocesses the entire audio at once.OnlineSpeechDenoiserprocesses audio incrementally; callflush()after the last chunk to get any remaining buffered audio.Call
reset()on the online denoiser to reuse it for new audio.DPDFNet’s
attenuationLimitDbis applied only byOfflineSpeechDenoiser. See Offline attenuation limit for its exact behavior.