AI avatar with emotions: set tone and speaking speed

Avatar 1.0 talking videos have no emotion or speed setting. Set emotion, speed, and volume on TTS 1.0 speech, then lip sync the avatar with Fabric.

5 min readSume
All posts

To give an AI avatar emotion, direct its voice: when the face is lip synced, the speech carries the tone, the pace, and the loudness. On Sume, the Avatar 1.0 talking video has no emotion, speed, or pronunciation setting. Instead, speak the line with TTS 1.0 in the avatar's own voice, with an emotion guide, a speed from 0.6 to 1.5, and a volume, then lip sync the avatar to that audio with VEED Fabric 1.0.

Facts come from Sume's Models overview and Generate avatar video docs and the TTS and Fabric schemas in the Sume API reference, read on 2026-09-27; anything called current behavior is read from Sume's code. The text to speech API guide covers every TTS field.

Can I set emotion or speed on an Avatar 1.0 talking video?

No. In current code, POST /v1/avatar-1.0/talking-video accepts only its listed fields, from avatar_handle and script to quality and aspect_ratio, and anything else fails with 400 and the message "… is not supported in this launch API contract."

Delivery comes out of generation. In current code, every clip's prompt asks for the same natural talking motion, including facial expression changes and small hand gestures, and no field lets you pick an emotion.

How do I make an avatar sound excited, calm, or slower?

Move the voice into its own step:

  • Speak the line with POST /v1/tts-1.0/generate and the avatar's avatar_handle. TTS resolves the voice the avatar already has, once its voice.status is ready.
  • Add generation_config with speed, volume, and an emotion guide.
  • Lip sync with POST /v1/veed/fabric-1.0: the same avatar_handle, the TTS audio_url, and the audio's duration_seconds. With timestamps.words: true on the TTS request, current code reports that duration beside the audio_url.
curl -X POST https://api.sume.com/v1/tts-1.0/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: calm-line-001" \
  -d '{
    "transcript": "Take a breath. Setup takes about two minutes, and you can pause anytime.",
    "avatar_handle": "product_host",
    "language": "en",
    "generation_config": { "speed": 0.85, "volume": 1.1 },
    "timestamps": { "words": true }
  }'

Which delivery settings can I control?

Only the TTS step has them. Test an emotion value on a short line before a long script, because the API reference lists no accepted values for it. The older top-level speed enum (slow, normal, fast) is deprecated; use generation_config.speed.

From the TTS schema in the Sume API reference, Generate avatar video, and Sume's current code, read 2026-09-27.
ControlAvatar 1.0 talking videoTTS 1.0, then Fabric
Speaking speedNonegeneration_config.speed, a multiplier from 0.6 to 1.5
VolumeNonegeneration_config.volume, a multiplier from 0.5 to 2.0
EmotionNone; generation adds natural facial expression changesgeneration_config.emotion, a guide of 1–64 characters
PronunciationNonepronunciation_dict_id, an optional dictionary id
VoiceThe avatar's own voiceThe avatar's voice by avatar_handle, or a voice.id

Will the avatar's face show the emotion?

Sume's docs don't say. Fabric's request has no expression or emotion field; it animates the still from the audio, so the feeling you want has to be in the TTS line.

Fabric's speed_tier field picks a processing queue, standard (the default) or fast, not how fast the avatar talks. Talking speed is set in TTS.

What are the limits?

  • In TTS, send the avatar or a voice.id, or both only when they match; a mismatch fails with 400.
  • Fabric starts from the avatar's identity still, so an Avatar 1.0 request's scene and product don't carry over.
  • TTS takes up to 20,000 characters per request. Fabric takes 1–300 seconds of Sume-hosted audio, at most 10 MB.
  • TTS costs $0.0475 per 1,000 characters and Fabric $0.1875 per audio second (720p), each plus a 5.5% agent fee by default.
  • For English lines where the default delivery is fine, the talking avatar video API stays one call.

Sources

Related posts

More in Sume Avatar 1.0

All Sume Avatar 1.0 posts

Written by Sume