Voice 50 listings at 300 characters each: Sume TTS cost

50 listing scripts of 300 characters each cost $0.7125 on Sume TTS ($0.01425 each). Key each by listing id so a rerun skips finished jobs.

4 min readSume
All posts

Fifty property-listing voiceovers of 300 characters each cost $0.7125 on Sume TTS, which is $0.01425 per listing at $0.0475 per 1,000 characters. Use the listing id as the Idempotency-Key so a crashed batch can be rerun without paying twice.

Batch cost

Per listing is the tool price for 300 characters; totals multiply it.

Sume TTS, 300 characters per listing (read 2026-10-09)
ListingsPer listingTotal
10$0.01425$0.1425
50$0.01425$0.7125
200$0.01425$2.85
500$0.01425$7.125

Rerun-safe loop

On a rerun, an identical key and body returns the original job (idempotency_hit true), so the loop is safe to repeat.

listings = [{"id": "L-1041", "text": "Bright two-bedroom..."},
            {"id": "L-1042", "text": "Corner studio..."}]
jobs = {}
for item in listings:
    jobs[item["id"]] = speak(item["text"], f"listing-{item['id']}-v1")
for lid, job in jobs.items():
    print(lid, audio_url(job))

Gotchas

Bump the version suffix (v2) when you change a script on purpose; the same key with new text is a 409. Submit all jobs first and poll afterward, as above, rather than waiting on each in turn. Use metadata for the listing id so you can match results later.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume