audio

Local audio transport implementation for Pipecat.

This module provides a local audio transport that uses PyAudio for real-time audio input and output through the system’s default audio devices.

class pipecat.transports.local.audio.LocalAudioTransportParams(*, 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>, input_device_index: int | None = None, output_device_index: int | None = None)[source]

Bases: TransportParams

Configuration parameters for local audio transport.

Parameters:
  • input_device_index – PyAudio device index for audio input. If None, uses default.

  • output_device_index – PyAudio device index for audio output. If None, uses default.

input_device_index: int | None
output_device_index: int | None
class pipecat.transports.local.audio.LocalAudioInputTransport(py_audio: PyAudio, params: LocalAudioTransportParams)[source]

Bases: BaseInputTransport

Local audio input transport using PyAudio.

Captures audio from the system’s audio input device and converts it to InputAudioRawFrame objects for processing in the pipeline.

__init__(py_audio: PyAudio, params: LocalAudioTransportParams)[source]

Initialize the local audio 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.audio.LocalAudioOutputTransport(py_audio: PyAudio, params: LocalAudioTransportParams)[source]

Bases: BaseOutputTransport

Local audio output transport using PyAudio.

Plays audio frames through the system’s audio output device by converting OutputAudioRawFrame objects to playable audio data.

__init__(py_audio: PyAudio, params: LocalAudioTransportParams)[source]

Initialize the local audio output transport.

Parameters:
  • 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.

class pipecat.transports.local.audio.LocalAudioTransport(params: LocalAudioTransportParams)[source]

Bases: BaseTransport

Complete local audio transport with input and output capabilities.

Provides a unified interface for local audio I/O using PyAudio, supporting both audio capture and playback through the system’s audio devices.

__init__(params: LocalAudioTransportParams)[source]

Initialize the local audio transport.

Parameters:

params – Transport configuration parameters.

input() FrameProcessor[source]

Get the input frame processor for this transport.

Returns:

The audio input transport processor.

output() FrameProcessor[source]

Get the output frame processor for this transport.

Returns:

The audio output transport processor.