enable_disable.rs

 1use std::time::Duration;
 2
 3use rodio::Source;
 4use rodio::wav_to_file;
 5use rodio::{nz, source::UniformSourceIterator};
 6
 7fn main() -> Result<(), Box<dyn std::error::Error>> {
 8    let file = std::fs::File::open("clips_airconditioning.wav")?;
 9    let decoder = rodio::Decoder::try_from(file)?;
10    let resampled = UniformSourceIterator::new(decoder, nz!(1), nz!(16_000));
11
12    let mut enabled = true;
13    let denoised = denoise::Denoiser::try_new(resampled)?.periodic_access(
14        Duration::from_secs(2),
15        |denoised| {
16            enabled = !enabled;
17            denoised.set_enabled(enabled);
18        },
19    );
20
21    wav_to_file(denoised, "processed.wav")?;
22    Ok(())
23}