removing resampling

This commit is contained in:
Vaibhav159
2025-06-07 12:53:55 +05:30
parent 534197239f
commit a2ee94651e

View File

@@ -11,7 +11,6 @@ from typing import Optional
from loguru import logger from loguru import logger
from pydantic import BaseModel from pydantic import BaseModel
from pipecat.audio.utils import create_default_resampler
from pipecat.frames.frames import ( from pipecat.frames.frames import (
AudioRawFrame, AudioRawFrame,
Frame, Frame,
@@ -58,13 +57,12 @@ class ExotelFrameSerializer(FrameSerializer):
params: Configuration parameters. params: Configuration parameters.
""" """
self._stream_sid = stream_sid self._stream_sid = stream_sid
self._call_sid = call_sid
self._params = params or ExotelFrameSerializer.InputParams() self._params = params or ExotelFrameSerializer.InputParams()
self._exotel_sample_rate = self._params.exotel_sample_rate self._exotel_sample_rate = self._params.exotel_sample_rate
self._sample_rate = 0 # Pipeline input rate self._sample_rate = 0 # Pipeline input rate
self._resampler = create_default_resampler()
@property @property
def type(self) -> FrameSerializerType: def type(self) -> FrameSerializerType:
"""Gets the serializer type. """Gets the serializer type.
@@ -97,13 +95,8 @@ class ExotelFrameSerializer(FrameSerializer):
answer = {"event": "clear", "streamSid": self._stream_sid} answer = {"event": "clear", "streamSid": self._stream_sid}
return json.dumps(answer) return json.dumps(answer)
elif isinstance(frame, AudioRawFrame): elif isinstance(frame, AudioRawFrame):
data = frame.audio # Audio data is now directly used without resampling
payload = base64.b64encode(frame.audio).decode("ascii")
# Resample the audio data
serialized_data = await self._resampler.resample(
data, frame.sample_rate, self._exotel_sample_rate
)
payload = base64.b64encode(serialized_data).decode("ascii")
answer = { answer = {
"event": "media", "event": "media",
@@ -132,18 +125,13 @@ class ExotelFrameSerializer(FrameSerializer):
if message["event"] == "media": if message["event"] == "media":
payload_base64 = message["media"]["payload"] payload_base64 = message["media"]["payload"]
payload = base64.b64decode(payload_base64) audio_data = base64.b64decode(payload_base64)
deserialized_data = await self._resampler.resample(
payload,
self._exotel_sample_rate,
self._sample_rate,
)
# Audio data is now directly used without resampling
audio_frame = InputAudioRawFrame( audio_frame = InputAudioRawFrame(
audio=deserialized_data, audio=audio_data,
num_channels=1, num_channels=1, # Assuming mono audio from Exotel
sample_rate=self._sample_rate, sample_rate=self._sample_rate, # Use the configured pipeline input rate
) )
return audio_frame return audio_frame
elif message["event"] == "dtmf": elif message["event"] == "dtmf":