Realtime Avatar

Quickstart

Render audio to a talking-head video in a few lines.

The fastest path is non-streaming lipsync: give the API an audio URL and an avatar, get back a rendered MP4 URL. No streaming, no playback code.

Get an API key

Create one in the dashboard. Sandbox keys (tic_test_…) are free; production keys are tic_live_…. See Authentication.

Install the SDK

npm install realtime-avatar
pip install realtime-avatar

Lipsync an audio URL

import { RealtimeAvatarClient } from "realtime-avatar";

const client = RealtimeAvatarClient.platform({
  apiKey: process.env.REALTIME_AVATAR_API_KEY!,
});

const { url, durationSeconds } = await client.lipsync({
  audioUrl: "https://example.com/speech.mp3",
  avatarId: "ava_…", // an avatar you created — or pass portraitUrl
});

console.log(url); // public MP4 URL
from realtime_avatar import RealtimeAvatarClient

client = RealtimeAvatarClient(api_key="tic_live_...")

result = client.lipsync(
    audio_url="https://example.com/speech.mp3",
    avatar_id="ava_...",  # or portrait_url="https://.../face.png"
)
print(result.url)  # public MP4 URL
curl -X POST https://realtimeavatar.ai/api/v1/lipsync \
  -H "Authorization: Bearer $REALTIME_AVATAR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"audioUrl":"https://example.com/speech.mp3","avatarId":"ava_..."}'

Next: live, streaming turns

For real-time conversation, stream a turn and play it on a canvas. See Realtime turns and Web playback.

On this page