Skip to main content

Denoiser

Struct Denoiser 

Source
pub struct Denoiser { /* private fields */ }
Expand description

RNNoise-based noise suppressor.

Wraps nnnoiseless::DenoiseState with frame buffering to handle arbitrary input chunk sizes. Automatically resamples to/from 48kHz when the input sample rate differs.

Implementations§

Source§

impl Denoiser

Source

pub fn new(sample_rate: u32) -> Self

Create a new denoiser.

§Arguments
  • sample_rate - Input sample rate in Hz. Common values: 16000, 48000.

If the sample rate is not 48kHz, the denoiser will automatically resample to 48kHz for processing and back to the original rate.

§Panics

Panics if resamplers cannot be created (should not happen with valid rates).

Source

pub fn sample_rate(&self) -> u32

Returns the sample rate this denoiser was configured for.

Source

pub fn is_resampling(&self) -> bool

Returns true if resampling is being used.

Source

pub fn process(&mut self, samples: &[i16]) -> Vec<i16>

Process audio samples through the noise suppressor.

Input samples are i16 values at the configured sample rate. Returns denoised samples at the same sample rate. Due to frame buffering (and resampling if applicable), output length may differ from input length.

Source

pub fn process_aligned(&mut self, samples: &[i16]) -> Vec<i16>

Process a complete buffer of samples (must be multiple of FRAME_SIZE).

This is more efficient when you know your input is frame-aligned.

Source

pub fn reset(&mut self)

Reset the denoiser state.

Source

pub fn buffered_samples(&self) -> usize

Returns the number of samples currently buffered.

Trait Implementations§

Source§

impl Debug for Denoiser

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,