One 90-second ad, three voice beats: three TTS jobs and a concat

Splitting a 1,350-character read into hook, proof and call-to-action jobs costs 8 cents plus 1 cent to join, against 7 for one job. When that is worth it.

5 min readSume
All posts

Three TTS jobs for a hook, a proof and a call to action cost 8 cents on Sume for a 1,350-character script, plus 1 cent to join them with timeline audio concat, against 7 cents for a single job. You pay about 2 cents more to give each beat its own emotion guide and speed.

Why split a voiceover at all

A Sume TTS job takes one generation_config with one emotion guide, one speed and one volume. If the hook should be urgent, the proof calm and the call to action warm, you need three jobs. Microsoft's MAI-Voice-2.1 page advertises emotion control for both of its models (read 2026-10-05), and teams moving between engines often expect one request to carry several moods. On Sume, a mood is a job.

The cost of three beats

Each job is $0.0475 per 1,000 characters, rounded up to a whole cent, with a 1-cent minimum. Rounding is where the extra cost comes from.

A 1,350-character read as three jobs (Sume catalog and Timeline audio page, read 2026-10-05)
BeatCharactersRaw costBilled
Hook200$0.0095$0.01
Proof900$0.0428$0.05
Call to action250$0.0119$0.02
Three jobs1,350$0.0641$0.08
Concat of three parts$0.01
One job, no split1,350$0.0641$0.07

Join the beats without a seam

Timeline audio concat takes 1 to 20 ordered parts and joins them in the sample domain, with no re-synthesis and no silence at the seams. It costs a flat $0.01 per job. Every part must be this workspace's media.sume.com audio and must share a channel layout, or the job fails with audio_parts_channel_mismatch.

Ask for WAV from TTS. The page says WAV is sample-exact, while mp3 adds priming padding again at every edge, so a three-way join in mp3 can click at both seams.

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: beats-concat-001" \
  -d '{
    "operation": "concat",
    "parts": [
      { "url": "https://media.sume.com/artifacts/artf_demo/hook.wav" },
      { "url": "https://media.sume.com/artifacts/artf_demo/proof.wav" },
      { "url": "https://media.sume.com/artifacts/artf_demo/cta.wav" }
    ]
  }'

Use the offsets for the picture cuts

The concat result returns segments[] with the index, start and duration of each part. The page describes those as the offsets you use to re-base Timeline 1.0 video[].start, so a cut lands on the first word of each beat instead of on a guess. Timeline then bills $0.10 per ceil output minute, so 90 seconds is $0.20.

When one job is better

That last point is the real argument. The extra cents buy cheap, targeted retakes.

  • The mood does not change: keep one job and save the cents.
  • The beats are short: at 40 to 200 characters each job still costs a full cent, so many tiny beats cost more than their length suggests.
  • You will edit later: three jobs make it cheaper to redo one beat. A retake of the 250-character call to action is 2 cents; redoing the whole read is 7.

Naming the files

Name each beat file after its position, such as 01-hook.wav, 02-proof.wav and 03-cta.wav, and store the Idempotency-Key with it. A concat job takes parts in the order you list them, so a clear name is the difference between a quick re-run and a guess about which take went where.

The decision in one table

One job versus three jobs for a 1,350-character read (Sume catalog, read 2026-10-05)
ApproachVoice jobsJoinTotal
One job, one emotion guide7 centsNone7 cents
Three jobs, three guides8 cents1 cent9 cents
Three jobs, retake the call to action once10 cents1 cent11 cents

The gap to a single job is two cents. Whether that is worth paying depends on how often a producer asks for a different tone on the last line, which in practice is most of the time. Write the three beats as separate strings in your script file from the start, so splitting later is a copy and not a rewrite.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume