Skip to main content
We recommend using Tavus’s Full Pipeline in its entirety for the lowest latency and most optimized multimodal experience. Third party integrations only provide rendering, while our Full Pipeline includes perception, turn-taking, and rendering for complete conversational intelligence.
Speech-to-speech models listen and speak in one step. You do not run separate STT, LLM, and TTS stages for the voice path. This page covers OpenAI GPT Live / GPTLive 1.5 support. In code, set the model to gpt-live-1. Pipecat or LiveKit runs that model; Tavus renders a synchronized face from the model’s audio. Use this page when you want a Tavus face on top of GPT Live. For cascade (STT → LLM → TTS) integrations, see Pipecat and LiveKit Agent.

How it works

  1. Your app connects the user to Pipecat or LiveKit.
  2. GPT Live streams spoken audio out of that stack.
  3. Tavus receives that audio (through TavusTransport or tavus.AvatarSession) and publishes face video and audio into the room.
Tavus detects steady realtime audio streams and applies low-latency rendering optimizations automatically. Keep continuous audio flowing to Tavus (including silence between utterances) so the stream stays classified as realtime.

Prerequisites

  • Tavus API Key
  • Tavus face_id
    • Stock faces or your own custom face both work.
    • Use a Phoenix-4.5 Pro face when you can. Those faces are tuned for low-latency realtime rendering.
  • OpenAI API key with access to GPT Live
  • One of:
    • A Pipecat Python app (pipecat-ai with the Tavus and Daily extras)
    • A LiveKit Agents app (Python or Node.js)
Pipecat’s Tavus transport still takes a replica_id argument. Pass your Tavus Face ID there. LiveKit’s plugin uses face_id / faceId (with replica_id as a deprecated alias).

Pipecat + GPT Live

Pipecat’s OpenAILiveLLMService talks to OpenAI’s Live API. TavusTransport creates a Tavus conversation, joins the room, and drives the face from the live audio output. For the OpenAI Live service itself, see Pipecat’s OpenAI Live docs. For the Tavus transport options, see Pipecat.

Integration guide

1

Step 1: Install and configure

  1. Install Pipecat with the OpenAI, Tavus, and Daily extras:
  1. Add these values to your .env file:
Generate a Tavus API key in the PAL Maker. See Authentication for how Tavus APIs use x-api-key.
2

Step 2: Wire GPT Live into TavusTransport

Create a TavusTransport, put OpenAILiveLLMService in the pipeline, and leave the separate STT / TTS stages out. GPT Live owns the speech path.
3

Step 3: Run the bot

Join the Tavus conversation URL that Pipecat creates for the session. The face speaks with GPT Live’s audio.

LiveKit + GPT Live

LiveKit Agents runs GPT Live through openai.realtime.GPTLiveModel. Tavus joins the same room as an avatar participant through tavus.AvatarSession and renders the face from the agent’s audio. For GPT Live on LiveKit, see LiveKit’s GPT-Live plugin guide. For the Tavus avatar plugin, see LiveKit Agent.

Integration guide

1

Step 1: Install and configure

  1. Install the OpenAI and Tavus plugins:
  1. Set these values in your .env file:
2

Step 2: Start GPT Live with a Tavus avatar

Pass GPTLiveModel into AgentSession, then start tavus.AvatarSession before the agent session.
LiveKit’s GPT Live plugin can also delegate reasoning and tools to a backend Responses model through responses_options. See LiveKit’s GPT-Live plugin guide when you need that path.

Tips for GPT Live with Tavus

  • Prefer Phoenix-4.5 Pro faces for speech-to-speech rendering.
  • On Pipecat, stay on a recent pipecat-ai release (1.5.0 or newer) so the Tavus transport’s realtime audio path is available.
  • Do not strip silence frames before they reach Tavus. GPT Live often sends continuous audio, including silence between utterances. Filtering that silence can stop Tavus from treating the stream as realtime and can cause lip-sync artifacts.
  • Speech-to-speech through Pipecat or LiveKit is a rendering integration. Perception, Tavus turn-taking, and the rest of the Full Pipeline are not part of this path.