Learn how Pipecat’s pipeline architecture orchestrates frame processing for voice AI applications
TranscriptionFrame#1
) that help with debugging and tracking data flow through your pipeline.
Common frame types include:
TTSSpeakFrame
and EndFrame
—in order to say goodbye then end the pipeline:
process_frame()
: Inspect and handle incoming framespush_frame()
: Send frames upstream or downstreamtransport.input()
creates InputAudioRawFrame
s from user audiostt
receives audio frames and outputs TranscriptionFrame
sllm
processes text and generates LLMTextFrame
stts
converts text frames to TTSAudioRawFrame
s and TTSTextFrame
stransport.output()
creates OutputAudioRawFrame
s and sends audio back to userParallelPipeline
to create branches where each branch receives all upstream frames. Frames are collected and pushed individually from each branch:
transport.output()
PipelineTask
to configure execution parameters:
PipelineRunner
to execute your pipeline task:
handle_sigint=True
)handle_sigint=True
)task.cancel()
PipelineParams
lets you configure how your entire pipeline operates: