Shorts voiceover: how many characters fill 15, 30, 45 and 60 s
Planning table from script length to seconds and TTS cost, with the 15 characters per second assumption labeled and a way to measure the real value.

Before voicing a script you want to know if it fits the Short. The table below uses 15 characters per second as an assumption for a normal narration pace. Your voice and script will differ, so measure once and replace the number.
Planning table
| Target | Characters | TTS cost |
|---|---|---|
| 15 s | 225 | $0.0107 |
| 30 s | 450 | $0.0214 |
| 45 s | 675 | $0.0321 |
| 60 s | 900 | $0.0428 |
Measure your own pace
Ask TTS for word timestamps. Divide the character count by the last word's end time and use that figure next time.
Code to compute characters for a target:
rate = 15 # characters per second, assumed
price = 0.0475 / 1000
for secs in (15, 30, 45, 60):
chars = secs * rate
print(secs, "s", chars, "chars", round(chars * price, 4))
Sources
Related posts
More in Developers
- Which MCP server lets Claude Code or Cursor generate video and images?
MCP servers that let Claude Code and Cursor make video and images: Sume, fal, Replicate, Runway, Higgsfield. Endpoints, sign-in, billing, setup.
- Idempotency keys for AI video APIs: retry without paying twice
An idempotency key makes a retried create return the original run or job instead of a second paid one. How Sume's Idempotency-Key works on each API.
- Signed webhooks for Sume video runs: events, retries, verification
Sume sends one HMAC-SHA256 signed POST when a Format, Action, or Agent Completion run completes or fails. Verify the raw body and dedupe on request_id.
- Spend caps for unattended AI agents: how Sume bounds each run
An unattended agent has no one to approve spend, so Sume caps generation per run: required on Agent Completions, and up to $500 on Format runs.
Written by Sume