Concepts / Avatars & tones
Avatars & tones
An avatar is the visual persona the server renders; a tone colours how a given line is delivered. You pick the avatar once in configuration and can steer the tone per utterance.
Choosing an avatar
Set avatar_id on AvatarConfig to select a prepared
avatar. Uploaded avatar files are keyed by their filename stem, so
presenter-male-1080.mp4 is addressed as presenter-male-1080. Omit avatar_id
to use the server default.
from zeli import AvatarConfig
AvatarConfig(avatar_id="presenter-male-1080")You can also override the avatar for a single conversational turn:
await session.send_message("Say that again, but excited!", avatar="presenter-male-1080")Tones
talk() and create_talk_stream() accept an optional tone that colours the
delivery of that line — for example "confident" or "happy".
await session.talk("This line lands with a little attitude.", tone="confident")
async with session.create_talk_stream(tone="happy") as talk:
await talk.send("Great to see you!", end_of_speech=True)Tones ride on talk and talk streams, which require the server's
control gateway. See the
control gateway.
Idle loop & sharpness
Two AvatarConfig fields shape the rendered look:
How the idle loop repeats while the avatar is between utterances.
Region-limited mouth restoration for sharper lips and teeth.
Blend factor for enhance, in [0, 1].
Emotion-responsive tone
Set emotion_responsive=True to let the server switch tone clips to match the
emotion of the reply. See Emotions.
avatar_id and voice_id are honored today. The remaining
persona fields are applied where the target server supports them.