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 }path to the DPDFNet ONNX model.
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.
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.