diff --git a/api/services/pipecat/audio_config.py b/api/services/pipecat/audio_config.py index 3c5aa80..966e8e0 100644 --- a/api/services/pipecat/audio_config.py +++ b/api/services/pipecat/audio_config.py @@ -33,7 +33,8 @@ class AudioConfig: transport_out_sample_rate: int vad_sample_rate: int = 16000 # VAD typically resamples internally pipeline_sample_rate: Optional[int] = None # If None, uses transport rates - buffer_size_seconds: float = 1.0 # This is how frequenly we will call merge_auido + buffer_size_seconds: float = 5.0 # This is how frequenly we will call merge_auido + max_recording_duration_seconds: float = 300.0 # 5 minutes max recording duration def __post_init__(self): # Validate VAD sample rate @@ -75,6 +76,12 @@ class AudioConfig: """Calculate buffer size in samples based on pipeline sample rate.""" return int(self.pipeline_sample_rate * self.buffer_size_seconds) + @property + def max_recording_bytes(self) -> int: + """Calculate max recording size in bytes based on pipeline sample rate and duration.""" + # 2 bytes per sample (16-bit PCM) + return int(self.pipeline_sample_rate * 2 * self.max_recording_duration_seconds) + def create_audio_config(transport_type: str) -> AudioConfig: """Create audio configuration based on transport type. diff --git a/api/services/pipecat/pipeline_builder.py b/api/services/pipecat/pipeline_builder.py index 40d6619..b22cbae 100644 --- a/api/services/pipecat/pipeline_builder.py +++ b/api/services/pipecat/pipeline_builder.py @@ -27,6 +27,7 @@ def create_pipeline_components(audio_config: AudioConfig, engine: "PipecatEngine audio_buffer = AudioBuffer( sample_rate=audio_config.pipeline_sample_rate, buffer_size=audio_config.buffer_size_bytes, + max_recording_bytes=audio_config.max_recording_bytes, ) # Create synchronizer for merged audio (outside pipeline) diff --git a/pipecat b/pipecat index 5e95754..30c6d1e 160000 --- a/pipecat +++ b/pipecat @@ -1 +1 @@ -Subproject commit 5e95754902332ee4a7ff7ebcee3cca7e70fce825 +Subproject commit 30c6d1edb93c144a52adc6a3aa1aa618b1ee85fc diff --git a/ui/src/app/workflow/[workflowId]/run/[runId]/page.tsx b/ui/src/app/workflow/[workflowId]/run/[runId]/page.tsx index e9e86c3..0832e4e 100644 --- a/ui/src/app/workflow/[workflowId]/run/[runId]/page.tsx +++ b/ui/src/app/workflow/[workflowId]/run/[runId]/page.tsx @@ -121,7 +121,6 @@ export default function WorkflowRunPage() {