tk
Tkinter-based local transport implementation for Pipecat.
This module provides a local transport using Tkinter for video display and PyAudio for audio I/O, suitable for desktop applications and testing.
- class pipecat.transports.local.tk.TkTransportParams(*, audio_out_enabled: bool = False, audio_out_sample_rate: int | None = None, audio_out_channels: int = 1, audio_out_bitrate: int = 96000, audio_out_10ms_chunks: int = 4, audio_out_mixer: Mapping[str | None, ~pipecat.audio.mixers.base_audio_mixer.BaseAudioMixer] | None=None, audio_out_destinations: list[str] = <factory>, audio_out_end_silence_secs: int = 2, audio_out_auto_silence: bool = True, audio_in_enabled: bool = False, audio_in_sample_rate: int | None = None, audio_in_channels: int = 1, audio_in_filter: BaseAudioFilter | None = None, audio_in_stream_on_start: bool = True, audio_in_passthrough: bool = True, video_in_enabled: bool = False, video_out_enabled: bool = False, video_out_is_live: bool = False, video_out_width: int = 1024, video_out_height: int = 768, video_out_bitrate: int | None = None, video_out_framerate: int = 30, video_out_color_format: str = 'RGB', video_out_codec: str | None = None, video_out_destinations: list[str] = <factory>, audio_input_device_index: int | None = None, audio_output_device_index: int | None = None)[source]
Bases:
TransportParamsConfiguration parameters for Tkinter transport.
- Parameters:
audio_input_device_index – PyAudio device index for audio input. If None, uses default.
audio_output_device_index – PyAudio device index for audio output. If None, uses default.
- audio_input_device_index: int | None
- audio_output_device_index: int | None
- class pipecat.transports.local.tk.TkInputTransport(py_audio: PyAudio, params: TkTransportParams)[source]
Bases:
BaseInputTransportTkinter-based audio input transport.
Captures audio from the system’s audio input device using PyAudio and converts it to InputAudioRawFrame objects for pipeline processing.
- __init__(py_audio: PyAudio, params: TkTransportParams)[source]
Initialize the Tkinter input transport.
- Parameters:
py_audio – PyAudio instance for audio device management.
params – Transport configuration parameters.
- async start(frame: StartFrame)[source]
Start the audio input stream.
- Parameters:
frame – The start frame containing initialization parameters.
- class pipecat.transports.local.tk.TkOutputTransport(tk_root: tkinter.Tk, py_audio: PyAudio, params: TkTransportParams)[source]
Bases:
BaseOutputTransportTkinter-based audio and video output transport.
Plays audio through PyAudio and displays video frames in a Tkinter window, providing a complete multimedia output solution for desktop applications.
- __init__(tk_root: tkinter.Tk, py_audio: PyAudio, params: TkTransportParams)[source]
Initialize the Tkinter output transport.
- Parameters:
tk_root – The root Tkinter window for video display.
py_audio – PyAudio instance for audio device management.
params – Transport configuration parameters.
- async start(frame: StartFrame)[source]
Start the audio output stream.
- Parameters:
frame – The start frame containing initialization parameters.
- async write_audio_frame(frame: OutputAudioRawFrame) bool[source]
Write an audio frame to the output stream.
- Parameters:
frame – The audio frame to write to the output device.
- Returns:
True if the audio frame was written successfully, False otherwise.
- async write_video_frame(frame: OutputImageRawFrame) bool[source]
Write a video frame to the Tkinter display.
- Parameters:
frame – The video frame to display in the Tkinter window.
- Returns:
True if the video frame was written successfully, False otherwise.
- class pipecat.transports.local.tk.TkLocalTransport(tk_root: tkinter.Tk, params: TkTransportParams)[source]
Bases:
BaseTransportComplete Tkinter-based local transport with audio and video capabilities.
Provides a unified interface for local multimedia I/O using Tkinter for video display and PyAudio for audio, suitable for desktop applications and testing.
- __init__(tk_root: tkinter.Tk, params: TkTransportParams)[source]
Initialize the Tkinter local transport.
- Parameters:
tk_root – The root Tkinter window for video display.
params – Transport configuration parameters.
- input() TkInputTransport[source]
Get the input frame processor for this transport.
- Returns:
The Tkinter input transport processor.
- output() TkOutputTransport[source]
Get the output frame processor for this transport.
- Returns:
The Tkinter output transport processor.