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: TransportParams

Configuration 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: BaseInputTransport

Tkinter-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.

async cleanup()[source]

Stop and cleanup the audio input stream.

class pipecat.transports.local.tk.TkOutputTransport(tk_root: tkinter.Tk, py_audio: PyAudio, params: TkTransportParams)[source]

Bases: BaseOutputTransport

Tkinter-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 cleanup()[source]

Stop and cleanup the audio output stream.

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: BaseTransport

Complete 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.