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-avatarpip install realtime-avatarLipsync 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 URLfrom 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 URLcurl -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.