- Any voice: OpenAI, ElevenLabs, Azure, Fish Audio, Cartesia, or any other TTS or speech-to-speech model. The avatar follows the audio, so no text or timings are needed.
- Real time: speech appears on the avatar’s lips moments after you send it. Interruptions are one call.
- Voice and video in sync, delivered together over WebRTC. No media servers to run.
- Drop-in for LiveKit: the avatar can join your LiveKit room as a participant instead.
- A few lines of code on your server and your page. The SDK handles streaming, playback and reconnection.
Realistic Avatars include no LLM and no text-to-speech: you bring your own voice agent. Want a complete agent with no code? See Voice Agents.
How it works
- Your server starts a session with your API key and an avatar ID, then pushes your agent’s audio to it as it streams.
- Talking Avatar renders the avatar speaking that audio, with the voice and lips in sync.
- Your page plays the video and voice, or the avatar joins your LiveKit room with them as tracks.
Two ways to show the avatar
The SDK
Both modes use@interviewflowai/talking-avatar. Your API key must stay on your server, so the SDK has two parts:
Not on Node.js?
Use the realtime avatar API directly: one WebSocket, from any language. It does everything the SDK does. There’s a complete Python example, and your page can still useLiveAvatarView, or plain WebRTC.
Video
All avatars stream at 832 × 468 (16:9), 25 frames per second.LiveAvatarView fits the video inside its container without cropping.
Pricing
$0.02 per minute, billed per second from your prepaid balance. A session is billed from the moment the avatar is live until you close it. Each session can run for up to 3 hours, and you can run as many as you need. See Pricing.Quickstart
A complete server and page, step by step.
Set up with a coding agent
A ready prompt for Claude Code, Codex or Cursor.