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:
TransportParamsConfiguration 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:
BaseInputTransportLocal 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.
- class pipecat.transports.local.audio.LocalAudioOutputTransport(py_audio: PyAudio, params: LocalAudioTransportParams)[source]
Bases:
BaseOutputTransportLocal 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 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:
BaseTransportComplete 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.