From 8c3521f2e4fb3ad900ac99f1a1b3fdb5bf97d82b Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Wed, 6 May 2026 09:40:13 -0400 Subject: [PATCH] chore(audio): deprecate ResampyResampler in favor of SOXR resamplers Emits a DeprecationWarning on instantiation. ResampyResampler will be removed in Pipecat 2.0 along with the default resampy and numba dependencies. --- .../audio/resamplers/resampy_resampler.py | 17 ++++++++++++++++- tests/test_resampy_resampler.py | 17 +++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 tests/test_resampy_resampler.py diff --git a/src/pipecat/audio/resamplers/resampy_resampler.py b/src/pipecat/audio/resamplers/resampy_resampler.py index ba2b39844..a087131c9 100644 --- a/src/pipecat/audio/resamplers/resampy_resampler.py +++ b/src/pipecat/audio/resamplers/resampy_resampler.py @@ -10,6 +10,8 @@ This module provides an audio resampler that uses the resampy library for high-quality audio sample rate conversion. """ +import warnings + import numpy as np import resampy @@ -21,6 +23,11 @@ class ResampyResampler(BaseAudioResampler): This resampler uses the resampy library's Kaiser windowing filter for high-quality audio resampling with good performance characteristics. + + .. deprecated:: 1.2.0 + ResampyResampler is deprecated and will be removed in Pipecat 2.0. + Use SOXRAudioResampler, create_file_resampler(), or create_stream_resampler() + instead. """ def __init__(self, **kwargs): @@ -29,7 +36,15 @@ class ResampyResampler(BaseAudioResampler): Args: **kwargs: Additional keyword arguments (currently unused). """ - pass + with warnings.catch_warnings(): + warnings.simplefilter("always") + warnings.warn( + "ResampyResampler is deprecated and will be removed in Pipecat 2.0. " + "Use SOXRAudioResampler, create_file_resampler(), or " + "create_stream_resampler() instead.", + DeprecationWarning, + stacklevel=2, + ) async def resample(self, audio: bytes, in_rate: int, out_rate: int) -> bytes: """Resample audio data using resampy library. diff --git a/tests/test_resampy_resampler.py b/tests/test_resampy_resampler.py new file mode 100644 index 000000000..b855e98dc --- /dev/null +++ b/tests/test_resampy_resampler.py @@ -0,0 +1,17 @@ +# +# Copyright (c) 2024-2026, Daily +# +# SPDX-License-Identifier: BSD 2-Clause License +# + +"""Tests for the deprecated resampy resampler.""" + +import pytest + +from pipecat.audio.resamplers.resampy_resampler import ResampyResampler + + +def test_resampy_resampler_emits_deprecation_warning(): + """Test that instantiating ResampyResampler emits a DeprecationWarning.""" + with pytest.warns(DeprecationWarning, match="ResampyResampler is deprecated"): + ResampyResampler()