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:
BaseAudioFilterAudio 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 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.