rnnoise_filter

RNNoise noise suppression audio filter for Pipecat.

This module provides an audio filter implementation using RNNoise, a recurrent neural network for audio noise reduction, via the pyrnnoise library.

class pipecat.audio.filters.rnnoise_filter.RNNoiseFilter(resampler_quality: str = 'QQ')[source]

Bases: BaseAudioFilter

Audio filter using RNNoise for noise suppression.

Provides real-time noise suppression for audio streams using RNNoise, a recurrent neural network for audio noise reduction. The filter buffers audio data to match RNNoise’s required frame length (480 samples at 48kHz) and processes it in chunks.

__init__(resampler_quality: str = 'QQ') None[source]

Initialize the RNNoise noise suppression filter.

Parameters:

resampler_quality – Quality of the resampler if resampling is needed. One of “VHQ”, “HQ”, “MQ”, “LQ”, “QQ”. Defaults to “QQ” (Quick) for lowest latency.

async start(sample_rate: int)[source]

Initialize the filter with the transport’s sample rate.

Parameters:

sample_rate – The sample rate of the input transport in Hz.

async stop()[source]

Clean up the RNNoise engine when stopping.

async process_frame(frame: FilterControlFrame)[source]

Process control frames to enable/disable filtering.

Parameters:

frame – The control frame containing filter commands.

async filter(audio: bytes) bytes[source]

Apply RNNoise noise suppression to audio data.

Buffers incoming audio and processes it in chunks that match RNNoise’s required frame length (480 samples at 48kHz). Returns filtered audio data.

Parameters:

audio – Raw audio data as bytes to be filtered.

Returns:

Noise-suppressed audio data as bytes.