diff --git a/changelog/3309.fixed.md b/changelog/3309.fixed.md new file mode 100644 index 000000000..3ad2b75bc --- /dev/null +++ b/changelog/3309.fixed.md @@ -0,0 +1 @@ +- Fixed a `RNNoiseFilter` issue that would cause a "[Errno 12] Cannot allocate memory" error when processing silence audio frames. diff --git a/src/pipecat/audio/filters/rnnoise_filter.py b/src/pipecat/audio/filters/rnnoise_filter.py index 1262c5a55..fc3e9b54d 100644 --- a/src/pipecat/audio/filters/rnnoise_filter.py +++ b/src/pipecat/audio/filters/rnnoise_filter.py @@ -115,6 +115,9 @@ class RNNoiseFilter(BaseAudioFilter): if self._sample_rate != 48000 and self._resampler_in: in_audio = await self._resampler_in.resample(audio, self._sample_rate, 48000) + if len(in_audio) == 0: + return audio + # Convert bytes to numpy array (int16) audio_samples = np.frombuffer(in_audio, dtype=np.int16)