zed/crates/denoise
2025-09-19 10:33:38 -04:00
..
examples Add new crate denoise required by audio (#38217) 2025-09-16 21:49:26 +00:00
models Add new crate denoise required by audio (#38217) 2025-09-16 21:49:26 +00:00
src Revert "Audio fixes and mic denoise" (#38509) 2025-09-19 10:33:38 -04:00
Cargo.toml Add new crate denoise required by audio (#38217) 2025-09-16 21:49:26 +00:00
LICENSE-GPL denoise: Fix LICENSE-GPL symlink (#38313) 2025-09-17 10:38:49 +00:00
README.md Add new crate denoise required by audio (#38217) 2025-09-16 21:49:26 +00:00

Real time streaming audio denoising using a Dual-Signal Transformation LSTM Network for Real-Time Noise Suppression.

Trivial to build as it uses the native rust Candle crate for inference. Easy to integrate into any Rodio pipeline.

    # use rodio::{nz, source::UniformSourceIterator, wav_to_file};
    let file = std::fs::File::open("clips_airconditioning.wav")?;
    let decoder = rodio::Decoder::try_from(file)?;
    let resampled = UniformSourceIterator::new(decoder, nz!(1), nz!(16_000));

    let mut denoised = denoise::Denoiser::try_new(resampled)?;
    wav_to_file(&mut denoised, "denoised.wav")?;
    Result::Ok<(), Box<dyn std::error::Error>>

Acknowledgements & License

The trained models in this repo are optimized versions of the models in the breizhn/DTLN. These are licensed under MIT.

The FFT code was adapted from Datadog's dtln-rs Repo also licensed under MIT.