Your
agent has a voice.Now give it a face.
Use a Cartesia Sonic voice in an Anam interactive avatar session. Keep the expressive speech layer, then add a synchronized face and live video without managing a separate Cartesia key in your app.
See it for yourself
Start a voice conversation, then flip the switch and watch how the avatar stays in sync without restarting the session or rebuilding your Cartesia agent.
Voice only Voice + Anam Reveal the face
Talk to the agent firstStart an audio-only conversation with your microphone.
cartesia-agent-demo · voice agent
01
Cartesia SonicText-to-speech
02
AnamLip sync · expression
03
Your appAudio + video
CARTESIA SONIC · SERVER-SIDE
From voice agent to video agent in a few lines.
Server-side integration reference. Use Coding Agents to adapt these snippets to your app or create a project.
// Server: use the Anam voice ID for a saved Cartesia voice
// Inside POST /api/anam-session; IDs and systemPrompt come from server config.
const response = await fetch("https://api.anam.ai/v1/auth/session-token", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ANAM_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
personaConfig: {
name: "Cartesia voice avatar",
avatarId,
voiceId,
llmId,
systemPrompt,
voiceGenerationOptions: {
speed: 1,
volume: 1,
emotion: "content",
},
},
}),
});
if (!response.ok) throw new Error("Could not create Anam session");
const { sessionToken } = await response.json();
// Return { sessionToken } as JSON from your /api/anam-session route.
Add a face to your Cartesia agent.
Keep your current speech, language model, and voice stack. Add a synchronized avatar in a few lines.