channel: "video" gives an agent a face. The Anam engine joins the call as a
second participant, consumes the audio the agent publishes, and republishes it
lip-synced to video on the agent’s behalf.
Nothing about the agent’s brain changes. The avatar renders from the agent’s own
audio whatever produced it — a text-to-speech model in the cascade, or a
speech-to-speech model — so video runs on either pipeline, and everything true
of that pipeline on voice is still true here. Voices, expressive delivery,
turn detection, tools, handoffs and knowledge all work the same way.
video fills in a default avatar for you; switching
away from it clears the object.
The avatar object
string
default:"anam"
An
avatar provider from GET /v1/catalog. anam is the only one.string
default:"anam"
The catalog model, which is also the billing SKU. Required to publish:
without it,
video agents need an avatar model (e.g. anam).string | null
A face
id from GET /v1/catalog/avatars. Required to publish: without it,
video agents need an avatar.string | null
The persona display name sent to Anam. Cosmetic — it does not change the face.
Picking a face
GET /v1/catalog/avatars is the gallery. active_version (the Cara generation)
and render_style (values such as realistic, animated_3d and illustrated)
filter it, and the response echoes back the values present in the unfiltered gallery as
active_versions and render_styles so the filters stay stable while you
narrow. offset and limit page it, up to 100 at a time.
id, name, variant, image_url, active_version and
render_style. The id is what goes in avatar.avatar_id.
active_version and render_style are gallery facets, not models. The
agent’s avatar.model always comes from GET /v1/catalog, and at runtime
Talqing sends no version override at all — Anam renders each face at its own
server-side default. Filtering by a Cara version narrows what you can pick; it
does not pin what is rendered.workspace_key comes back true. Without one you see Talqing’s.
What video requires
Video is web only. A video agent cannot be assigned to a phone number (only published voice agents can answer SIP) and cannot be dialled outbound
(outbound SIP requires a voice agent). Reach one through
POST /v1/calls/token — see web calls.
resume_false_interruption is forced off. The avatar’s audio output cannot
be paused, and resuming a sentence after a false interruption needs a pause — so the
setting is pinned off for every video agent whatever the config says, and the
dashboard hides the control rather than showing one that lies. The rest of
turn handling behaves exactly as it does on voice.
A handoff between video agents must keep the same face. The Anam session is
opened once, for the call, and cannot be swapped part-way through, so the
target’s avatar provider, model, avatar_id and name must all match the
source’s:
What it costs
Avatar time is metered as wall-clock seconds, idle included — the clock starts when the Anam session is created, before the caller says anything, and stops when it is closed. Four minutes of a caller reading something before they answer is four minutes of avatar. It is priced per minute at the catalog’s Anam rate and shown as its own line in the call’s cost breakdown. That line is your own Anam spend, on your own key, on top of whatever the models cost — Talqing never resells it. Talqing’s own charge is the per-minute platform fee, which is higher onvideo than on voice; see
pricing and credits and
costs.
Receiving the video
A viewer joins the same LiveKit room and subscribes to the avatar participant’s track. The browser SDK does that for you — web calls covers minting a call token and connecting, and web call features covers rendering the avatar track alongside images, screen share and frontend actions.Next
Web calls
The call token and the browser integration a video agent needs.
Channels
What voice, video and text each have, and what they normalize away.
Voices
The voice the avatar lip-syncs to.