WebsocketServer

class pipecat.transports.network.websocket_server.WebsocketServerParams(*, camera_in_enabled=False, camera_out_enabled=False, camera_out_is_live=False, camera_out_width=1024, camera_out_height=768, camera_out_bitrate=800000, camera_out_framerate=30, camera_out_color_format='RGB', audio_out_enabled=False, audio_out_sample_rate=None, audio_out_channels=1, audio_out_bitrate=96000, audio_out_10ms_chunks=4, audio_out_mixer=None, audio_out_destinations=<factory>, audio_in_enabled=False, audio_in_sample_rate=None, audio_in_channels=1, audio_in_filter=None, audio_in_stream_on_start=True, audio_in_passthrough=True, video_in_enabled=False, video_out_enabled=False, video_out_is_live=False, video_out_width=1024, video_out_height=768, video_out_bitrate=800000, video_out_framerate=30, video_out_color_format='RGB', video_out_destinations=<factory>, vad_enabled=False, vad_audio_passthrough=False, vad_analyzer=None, turn_analyzer=None, add_wav_header=False, serializer=None, session_timeout=None)[source]

Bases: TransportParams

Parameters:
  • camera_in_enabled (bool)

  • camera_out_enabled (bool)

  • camera_out_is_live (bool)

  • camera_out_width (int)

  • camera_out_height (int)

  • camera_out_bitrate (int)

  • camera_out_framerate (int)

  • camera_out_color_format (str)

  • audio_out_enabled (bool)

  • audio_out_sample_rate (int | None)

  • audio_out_channels (int)

  • audio_out_bitrate (int)

  • audio_out_10ms_chunks (int)

  • audio_out_mixer (BaseAudioMixer | Mapping[str | None, BaseAudioMixer] | None)

  • audio_out_destinations (List[str])

  • audio_in_enabled (bool)

  • audio_in_sample_rate (int | None)

  • audio_in_channels (int)

  • audio_in_filter (BaseAudioFilter | None)

  • audio_in_stream_on_start (bool)

  • audio_in_passthrough (bool)

  • video_in_enabled (bool)

  • video_out_enabled (bool)

  • video_out_is_live (bool)

  • video_out_width (int)

  • video_out_height (int)

  • video_out_bitrate (int)

  • video_out_framerate (int)

  • video_out_color_format (str)

  • video_out_destinations (List[str])

  • vad_enabled (bool)

  • vad_audio_passthrough (bool)

  • vad_analyzer (VADAnalyzer | None)

  • turn_analyzer (BaseTurnAnalyzer | None)

  • add_wav_header (bool)

  • serializer (FrameSerializer | None)

  • session_timeout (int | None)

add_wav_header: bool
serializer: FrameSerializer | None
session_timeout: int | None
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pipecat.transports.network.websocket_server.WebsocketServerCallbacks(*, on_client_connected, on_client_disconnected, on_session_timeout, on_websocket_ready)[source]

Bases: BaseModel

Parameters:
  • on_client_connected (Callable[[WebSocketServerProtocol], Awaitable[None]])

  • on_client_disconnected (Callable[[WebSocketServerProtocol], Awaitable[None]])

  • on_session_timeout (Callable[[WebSocketServerProtocol], Awaitable[None]])

  • on_websocket_ready (Callable[[], Awaitable[None]])

on_client_connected: Callable[[WebSocketServerProtocol], Awaitable[None]]
on_client_disconnected: Callable[[WebSocketServerProtocol], Awaitable[None]]
on_session_timeout: Callable[[WebSocketServerProtocol], Awaitable[None]]
on_websocket_ready: Callable[[], Awaitable[None]]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class pipecat.transports.network.websocket_server.WebsocketServerInputTransport(transport, host, port, params, callbacks, **kwargs)[source]

Bases: BaseInputTransport

Parameters:
  • transport (BaseTransport)

  • host (str)

  • port (int)

  • params (WebsocketServerParams)

  • callbacks (WebsocketServerCallbacks)

async start(frame)[source]
Parameters:

frame (StartFrame)

async stop(frame)[source]
Parameters:

frame (EndFrame)

async cancel(frame)[source]
Parameters:

frame (CancelFrame)

async cleanup()[source]
class pipecat.transports.network.websocket_server.WebsocketServerOutputTransport(transport, params, **kwargs)[source]

Bases: BaseOutputTransport

Parameters:
  • transport (BaseTransport)

  • params (WebsocketServerParams)

async set_client_connection(websocket)[source]
Parameters:

websocket (WebSocketServerProtocol | None)

async start(frame)[source]
Parameters:

frame (StartFrame)

async stop(frame)[source]
Parameters:

frame (EndFrame)

async cancel(frame)[source]
Parameters:

frame (CancelFrame)

async cleanup()[source]
async process_frame(frame, direction)[source]
Parameters:
  • frame (Frame)

  • direction (FrameDirection)

async send_message(frame)[source]
Parameters:

frame (TransportMessageFrame | TransportMessageUrgentFrame)

async write_audio_frame(frame)[source]
Parameters:

frame (OutputAudioRawFrame)

class pipecat.transports.network.websocket_server.WebsocketServerTransport(params, host='localhost', port=8765, input_name=None, output_name=None)[source]

Bases: BaseTransport

Parameters:
  • params (WebsocketServerParams)

  • host (str)

  • port (int)

  • input_name (str | None)

  • output_name (str | None)

input()[source]
Return type:

WebsocketServerInputTransport

output()[source]
Return type:

WebsocketServerOutputTransport