Lip sync longer than 15 seconds: split the audio first

MiniMax H3 Max lip sync on Sume takes 5 to 14.8 s of audio. For a longer line, use VEED Fabric up to 300 s, or split the audio into ranges and sync each piece.

4 min readSume
All posts

On Sume, a lip-sync clip longer than 15 seconds has two routes. POST /v1/veed/fabric-1.0 accepts audio up to 300 seconds in one job, so no split is needed. POST /v1/minimax/h3-max/lip-sync accepts only 5 to 14.8 seconds, so for a longer line you cut the audio into pieces first, sync each piece, and join the results.

The limits are from Sume's OpenAPI reference and the Timeline audio page, read 2026-09-29. The over-5-minute case is a different problem, covered in a separate post linked below.

Why does the short route refuse longer audio?

The schema says the provider rejects shorter audio and silently clips longer audio. Sume would rather refuse than let a clip lose its ending, so a request outside 5 to 14.8 seconds is refused, not clamped.

Audio limits by lip-sync route on Sume, read 2026-09-29.
RouteAudio lengthLonger than 15 s
veed/fabric-1.0Up to 300 s per jobOne job, no split
minimax/h3-max/lip-sync5 to 14.8 sSplit, then one job per piece

How do I split the audio into pieces?

Timeline audio has a split operation. It takes a top-level url and ranges[] of 1 to 20 items, each { start, end? }, and returns a durable media.sume.com file per range. The source has to be Sume-hosted, so import it first with POST /v1/media-imports. Idempotency-Key is required, and a split is $0.01 flat per job.

curl -X POST https://api.sume.com/v1/timeline-1.0/audio \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: split-line-001" \
  -d '{
    "operation": "split",
    "url": "https://media.sume.com/artifacts/artf_demo/line.wav",
    "ranges": [{ "start": 0, "end": 12 }, { "start": 12, "end": 24 }, { "start": 24 }]
  }'

How long can each piece be?

At most 14.8 seconds and at least 5, including the last one. With up to 20 ranges per split, one call can cover about 296 seconds. A 32-second line cut at 12 and 24 gives pieces of 12, 12 and 8 seconds, all inside the window. A 26-second line cut at 12 and 24 would leave 2 seconds at the end, which the route would refuse, so cut at 13 instead, giving 13 and 13.

What audio format should I keep?

Keep the default wav. Timeline audio says wav is the default, sample-exact output and warns that mp3 re-adds padding at every edge, which is what you do not want at a cut. Each piece then goes to the lip-sync route with duration_seconds set to its length, and the pieces are joined on the timeline afterwards.

When is a split not worth it?

When your line is under 300 seconds and you do not need the H3 Max resolutions, use Fabric and skip the cutting, since a split adds jobs and join seams. When it is over 300 seconds, read Lip sync for videos over 5 minutes, and for the input rules on either route, read Lip sync API: photo and audio.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume