> ## Documentation Index
> Fetch the complete documentation index at: https://docs.talking-avatar.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Realistic Avatars overview

> Photorealistic avatars that speak your voice agent's audio in real time, for $0.02 a minute.

Realistic Avatars give your voice agent a photorealistic face. Send your agent's voice as it's generated; your users see a real-looking person say it, with accurate lip sync, natural expressions and subtle head motion, streamed to your page in real time.

* **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.

> [!NOTE]
>
> 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](https://docs.talking-avatar.dev/voice-agents/overview.md).

## How it works

```mermaid theme={null}
flowchart LR
  A[Your voice agent / TTS] -- PCM audio --> B[Your server<br/>LiveAvatar]
  B -- audio --> C[Talking Avatar]
  C -- video + voice<br/>WebRTC --> D[Your page<br/>LiveAvatarView]
  C -. or tracks .-> E[Your LiveKit room]
```

1. **Your server** starts a session with your API key and an avatar ID, then pushes your agent's audio to it as it streams.
2. **Talking Avatar** renders the avatar speaking that audio, with the voice and lips in sync.
3. **Your page** plays the video and voice, or the avatar joins **your LiveKit room** with them as tracks.

Your API key never leaves your server. Your page only plays the stream.

## Two ways to show the avatar

| | Direct (WebRTC) | LiveKit |
| - | - | - |
| **Use it when** | You don't use LiveKit | Your app already uses LiveKit rooms |
| **Your server** | `LiveAvatar.start()` plus one route that calls `handleView()` | `LiveAvatar.start()` with a publish-only LiveKit token |
| **Your page** | `LiveAvatarView` plays the video and voice | Your LiveKit client plays the avatar's tracks |
| **Guide** | [Quickstart](https://docs.talking-avatar.dev/realistic-avatars/quickstart.md) | [LiveKit](https://docs.talking-avatar.dev/realistic-avatars/livekit.md) |

## The SDK

Both modes use [`@interviewflowai/talking-avatar`](https://www.npmjs.com/package/@interviewflowai/talking-avatar). Your API key must stay on your server, so the SDK has two parts:

| Import | Runs on | Does |
| - | - | - |
| `@interviewflowai/talking-avatar/server` → [`LiveAvatar`](https://docs.talking-avatar.dev/sdk/live-avatar) | Your server (Node.js 22+, or 18/20 with `ws`) | Starts the avatar, sends your agent's voice, handles interruptions |
| `@interviewflowai/talking-avatar/live` → [`LiveAvatarView`](https://docs.talking-avatar.dev/sdk/live-avatar-view) | Your page | Shows the avatar with its voice, reconnects by itself |

## Not on Node.js?

Use the [realtime avatar API](https://docs.talking-avatar.dev/api-reference/realtime/overview.md) directly: one WebSocket, from any language. It does everything the SDK does. There's a complete [Python example](https://docs.talking-avatar.dev/api-reference/realtime/python.md), and your page can still use `LiveAvatarView`, or [plain WebRTC](https://docs.talking-avatar.dev/api-reference/realtime/browser-playback.md).

## 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](https://docs.talking-avatar.dev/get-started/pricing.md).

> **[Quickstart](https://docs.talking-avatar.dev/realistic-avatars/quickstart.md)**
>
> A complete server and page, step by step.

> **[Set up with a coding agent](https://docs.talking-avatar.dev/realistic-avatars/coding-agent.md)**
>
> A ready prompt for Claude Code, Codex or Cursor.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.