BaseTransport

BaseTransport
base class

Base class for transport implementations that handle audio/video I/O streams.

Constructor Parameters

input_name
Optional[str]
default:"None"

Name identifier for the input stream

output_name
Optional[str]
default:"None"

Name identifier for the output stream

loop
Optional[asyncio.AbstractEventLoop]
default:"None"

Event loop to use for async operations. Defaults to the current running loop.

Methods

input
method

Returns the input frame processor. Must be implemented by subclasses.

@abstractmethod def input(self) -> FrameProcessor
output
method

Returns the output frame processor. Must be implemented by subclasses.

@abstractmethod def output(self) -> FrameProcessor
event_handler
decorator

Decorator to register an event handler for the specified event. python def event_handler(self, event_name: str)

add_event_handler
method

Adds an event handler function for the specified event.

def add_event_handler(self, event_name: str, handler)

TransportParams

TransportParams
class

Configuration parameters for transport audio/video capabilities.

Parameters

Video Output Configuration

video_out_enabled
bool
default:"False"

Enable camera output

video_out_is_live
bool
default:"False"

Whether camera output is live streaming

video_out_width
int
default:"1024"

Camera output width in pixels

video_out_height
int
default:"768"

Camera output height in pixels

video_out_bitrate
int
default:"800000"

Camera output bitrate in bits/second

video_out_framerate
int
default:"30"

Camera output framerate

video_out_color_format
str
default:"RGB"

Camera output color format

Audio Output Configuration

audio_out_enabled
bool
default:"False"

Enable audio output

audio_out_sample_rate
int
default:"None"

Audio output sample rate in Hz

audio_out_channels
int
default:"1"

Number of audio output channels

audio_out_bitrate
int
default:"96000"

Audio output bitrate in bits/second

audio_out_10ms_chunks
int
default:"4"

Audio output chunk size in 10ms intervals. Default is 4, resulting in 40ms chunks.

audio_out_mixer
Optional[BaseAudioMixer]
default:"None"

Audio mixer for output processing

Audio Input Configuration

audio_in_enabled
bool
default:"False"

Enable audio input

audio_in_passthrough
bool
default:"False"

When enabled, incoming audio frames are pushed downstream

audio_in_sample_rate
int
default:"None"

Audio input sample rate in Hz

audio_in_channels
int
default:"1"

Number of audio input channels

audio_in_filter
Optional[BaseAudioFilter]
default:"None"

Audio filter for input processing

VAD Configuration

vad_analyzer
Optional[VADAnalyzer]
default:"None"

Voice Activity Detection analyzer. You can set this to either SileroVADAnalyzer() or WebRTCVADAnalyzer().

User End of Turn Detection

turn_analyzer
Optional[BaseTurnAnalyzer]
default:"None"

End of turn analyzer for advanced end-of-turn detection. You can set this to either SmartTurnAnalyzer() for remote inference or LocalCoreMLSmartTurnAnalyzer() for local inference.

Requirements:

  • Audio input must be enabled (audio_in_enabled=True)
  • VAD should be configured with a short pause detection (e.g., stop_secs=0.2)
# Example configuration
params=TransportParams(
    audio_in_enabled=True,
    vad_analyzer=SileroVADAnalyzer(params=VADParams(stop_secs=0.2)),
    turn_analyzer=SmartTurnAnalyzer(url=remote_smart_turn_url)
)

See Smart Turn Detection for more details.