Skip to content
Examples Gallery/Pipecat Voice Streaming Router

Vobiz + Pipecat WebSocket Router

Explore the Implementation

Clone RepositoryView on GitHub
Bash
git clone https://github.com/vobiz-ai/Vobiz-X-Pipecat.git
cd Vobiz-X-Pipecat

Designed exclusively for complex development environments preferring the granular, raw computational piping structure native to Pipecat architectures. This blueprint drops SIP routing and third-party WebRTC SDKs entirely, deploying a specialized WebsocketServerTransport framework to ingest raw Vobiz Media Streams and map them across discrete, serialized AI Service nodes elegantly.


How It Works

Pipecat establishes sequential programmatic flow topologies linking distinctly discrete ML processing components natively. This architecture binds heavily to the underlying Vobiz XML Media Stream WebSockets.

  • Initial XML WebSockets Hooks: An initial outbound REST dial pushes out against standard Vobiz endpoints. In real time as the caller lifts the receiver, Vobiz queries your infrastructure matching a standard <Connect><Stream url="wss://.../ws"/></Connect> payload, establishing the raw data bridge securely.
  • Pipecat Transport Layer: Instead of manually unpacking Base64 G.711 uLaw frames like the All-XML example, this deployment instantiates Pipecat's robust WebsocketServerTransport class which natively decodes, buffers, and serializes the incoming Vobiz media events perfectly.
  • Sequential Service Piping: The raw array chunks hit Pipecat's Pipeline abstraction natively. The audio flows deterministically through a SileroVADAnalyzer, triggers a Deepgram STT transcription service, streams context sequentially into an OpenAILLMService prompt, and synthesizes speech backward securely via an ElevenLabs TTS object natively.
  • Asynchronous Parallelism: By relying on Pipecat's underlying Task arrays, interrupt thresholds (where the caller speaks over the AI) are handled flawlessly by the framework, natively killing the TTS outbound queue and forcefully reverting control back to the STT listener immediately.

Implementation Code

Pipecat establishes sequential pipeline dependencies passing completely raw native audio buffer objects incrementally across explicitly defined local LLM/STT discrete service nodes exclusively:

Python
import asyncio
from pipecat.pipeline.pipeline import Pipeline
from pipecat.transports.network.websocket_server import WebsocketServerParams, WebsocketServerTransport
from pipecat.audio.vad.silero import SileroVADAnalyzer
from pipecat.services.openai import OpenAILLMService

async def main():
    transport = WebsocketServerTransport(
        params=WebsocketServerParams(
            audio_out_enabled=True,
            add_wav_header=False,
            vad_enabled=True,
            vad_analyzer=SileroVADAnalyzer(),
            vad_audio_passthrough=True,
        )
    )
    
    llm = OpenAILLMService(api_key="sk-...", model="gpt-4o-mini")
    
    pipeline = Pipeline([
        transport.input(),   # WebSockets (Vobiz)
        stt_service,         # Deepgram STT
        llm,                 # OpenAI Prompt Engine
        tts_service,         # ElevenLabs / OpenAI TTS
        transport.output(),  # Stream natively right back onto Vobiz Buffer
    ])