serializers: don't update twilio/telnyx sample rates

This commit is contained in:
Aleix Conchillo Flaqué
2025-02-06 09:01:03 -08:00
parent e8ce826473
commit 29b9dccc53
3 changed files with 8 additions and 11 deletions

View File

@@ -31,7 +31,7 @@ from pipecat.serializers.base_serializer import FrameSerializer, FrameSerializer
class TelnyxFrameSerializer(FrameSerializer):
class InputParams(BaseModel):
telnyx_sample_rate: Optional[int] = None # Default Telnyx rate (8kHz)
telnyx_sample_rate: int = 8000 # Default Telnyx rate (8kHz)
sample_rate: Optional[int] = None # Pipeline input rate
inbound_encoding: str = "PCMU"
outbound_encoding: str = "PCMU"
@@ -48,7 +48,7 @@ class TelnyxFrameSerializer(FrameSerializer):
params.inbound_encoding = inbound_encoding
self._params = params
self._telnyx_sample_rate = 0 # Fixed rate for Telnyx (8kHz)
self._telnyx_sample_rate = self._params.telnyx_sample_rate
self._sample_rate = 0 # Pipeline input rate
self._resampler = create_default_resampler()
@@ -58,8 +58,6 @@ class TelnyxFrameSerializer(FrameSerializer):
return FrameSerializerType.TEXT
async def setup(self, frame: StartFrame):
# Configure rates for input path: Telnyx (8kHz encoded) -> Pipeline (PCM)
self._telnyx_sample_rate = self._params.telnyx_sample_rate or frame.audio_in_sample_rate
self._sample_rate = self._params.sample_rate or frame.audio_in_sample_rate
async def serialize(self, frame: Frame) -> str | bytes | None:

View File

@@ -27,14 +27,14 @@ from pipecat.serializers.base_serializer import FrameSerializer, FrameSerializer
class TwilioFrameSerializer(FrameSerializer):
class InputParams(BaseModel):
twilio_sample_rate: Optional[int] = None # Default Twilio rate (8kHz)
twilio_sample_rate: int = 8000 # Default Twilio rate (8kHz)
sample_rate: Optional[int] = None # Pipeline input rate
def __init__(self, stream_sid: str, params: InputParams = InputParams()):
self._stream_sid = stream_sid
self._params = params
self._twilio_sample_rate = 0 # Fixed rate for Twilio (8kHz)
self._twilio_sample_rate = self._params.twilio_sample_rate
self._sample_rate = 0 # Pipeline input rate
self._resampler = create_default_resampler()
@@ -44,8 +44,6 @@ class TwilioFrameSerializer(FrameSerializer):
return FrameSerializerType.TEXT
async def setup(self, frame: StartFrame):
# Configure rates for input path: Twilio (8kHz μ-law) -> Pipeline (PCM)
self._twilio_sample_rate = self._params.twilio_sample_rate or frame.audio_in_sample_rate
self._sample_rate = self._params.sample_rate or frame.audio_in_sample_rate
async def serialize(self, frame: Frame) -> str | bytes | None: