A 600-character script to a talking still: $0.03 TTS plus $3.80 Fabric

600 characters of TTS cost $0.0285 on Sume; if the audio measures 38 s, VEED Fabric adds 38 x $0.10 = $3.80 at 480p or $7.125 at 720p. Total $3.83 or $7.15.

3 min readSume
All posts

A 600-character script turned into a talking still on Sume costs $0.0285 for text-to-speech (600 x $0.0475 / 1,000) plus the Fabric charge on the audio you get back. If that audio measures 38 seconds, Fabric adds 38 x $0.10 = $3.80 at 480p or 38 x $0.1875 = $7.125 at 720p. The totals are $3.8285 and $7.1535.

Why you must measure the audio

Fabric bills ceil(audio seconds), not characters. Characters set the TTS price, and the spoken length depends on the voice and the pacing. The 38 seconds here is an example of a measured value, not a rule of thumb. The models overview tells you to send a measured duration_seconds with the audio_url, so inspect the finished file before you submit the lip-sync job.

For reference, 20,000 characters is the largest single TTS request, at $0.95. A 600-character script is 3 percent of that. Scripts that long are not typical for a talking still: Fabric accepts up to 300 seconds of audio, so the audio limit rather than the character limit decides how long a single clip can be.

Receipt for a 600-character script, 38 s of measured audio (Sume catalog, read 2026-10-09)
LineQuantityRateCost
TTS600 characters$0.0475 per 1,000$0.0285
Fabric 480p38 s$0.10$3.80
Total at 480p$3.8285
Fabric 720p38 s$0.1875$7.125
Total at 720p$7.1535

The arithmetic in code

This script recomputes the receipt for any character count and measured length.

Fabric's 10 MB audio limit and 300-second maximum still apply; check them before calling.

If you cut the script to 450 characters and it measures 29 seconds, the 480p receipt becomes $0.021375 + 29 x $0.10 = $2.921375, about $2.92. Tighter scripts save more through the Fabric line than through TTS, because each second costs $0.10 or more.

import math

TTS_PER_1K = 0.0475
FABRIC = {"480p": 0.10, "720p": 0.1875}

def receipt(chars, audio_seconds, res):
    tts = chars * TTS_PER_1K / 1000
    billed = math.ceil(audio_seconds)
    fabric = billed * FABRIC[res]
    return round(tts, 4), billed, round(fabric, 4), round(tts + fabric, 4)

print(receipt(600, 37.6, "480p"))
print(receipt(600, 37.6, "720p"))

Where the money goes

TTS is under 1 percent of the 480p total ($0.0285 of $3.8285). The decision that matters is resolution: 720p nearly doubles the Fabric line ($7.125 against $3.80). Rewriting the script to be 6 seconds shorter saves 6 x $0.10 = $0.60 at 480p. A rewrite is worth more than any TTS tuning.

The same receipt works for a batch. A set of 40 notices of 600 characters each, each measuring about 38 seconds, would cost 40 x $0.0285 = $1.14 for TTS and 40 x $3.80 = $152.00 for Fabric at 480p, $153.14 in total. Measure the real audio for each file, not the first one, since pacing differs between scripts. The sum of the ceilings is the number to multiply by $0.10, and a script that runs 38.1 seconds bills 39.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume