Pipecat avatar TTFB metrics vs timing a Sume avatar job
Pipecat's Tavus service reports TTFB from TTSStartedFrame and BotStartedSpeakingFrame. A Sume avatar job has no first byte to time: measure submit to completed.
What does Pipecat measure for the avatar?
The Tavus page says it records TTFB metrics using TTSStartedFrame and BotStartedSpeakingFrame. That makes sense for a live avatar: the number is the delay between the voice starting and the face speaking.
What is the equivalent for a recorded clip?
A Sume job has no stream, so a first-byte time means little. The measurable intervals are the time from submit to completed, and the time you spend polling. The status response gives next_poll_after_seconds when it has a hint; obey it, or back off exponentially if absent.
Stop on completed, failed or canceled, and read /result only when result_ready is true.
| Approach | Start | Stop |
|---|---|---|
| Pipecat live avatar | TTSStartedFrame | BotStartedSpeakingFrame |
| Sume avatar job | Submit accepted (job id returned) | Status completed |
| Your page | Click | Clip playing |
How do I log it?
Store the timestamps yourself at submit and at the webhook or poll that sees completed. The difference is your render time for that tier and script length. Compare standard and plus on your own scripts instead of guessing, since the docs call standard the fastest path and max the slowest.
If you wait inline, sync mode returns after at most 30 seconds, and you still follow the status URL if it timed out.
import time
t0 = time.monotonic()
# ... submit the job, then poll status until it is completed ...
elapsed = time.monotonic() - t0
print("submit_to_completed_seconds=%.1f" % elapsed)Sources
Related posts
More in Sume Avatar 1.0
- Pipecat HeyGen LiveAvatar: duration by tier vs a 60 second Sume job
In Pipecat, HeyGen LiveAvatar session length depends on your subscription tier. On Sume the length rule is fixed: 4 to 60 seconds per job, priced per second.
- Pipecat Simli max_session_length vs Sume's 4 to 60 second clip
Simli in Pipecat caps a live session with max_session_length and max_idle_time. Sume has no session: an avatar job is a 4 to 60 second file.
- Pipecat TavusVideoService live avatar, or a recorded Sume clip?
Pipecat's Tavus service speaks your agent's TTS live over WebRTC. A Sume avatar job is a 4 to 60 second recorded MP4. How to pick, by what the viewer does.
- Reuse one AI presenter across lip-sync clips with an avatar handle
Create the presenter once, then pass avatar_handle to H3 Max lip sync for every clip. Same face each time, no re-upload, one Idempotency-Key per line.
Written by Sume