TTS from an accepted script: transcript_source instead of pasted text

Sume TTS can read an accepted script by script_revision_id and sentence_ids, not pasted text. MCP tools tts_source_get and tts_source_verify_spine support it.

4 min readSume
All posts

Instead of pasting text into transcript, a Sume TTS request can reference a server-held accepted script with transcript_source: a script_revision_id plus a list of sentence_ids. The API resolves the text itself, so the audio always matches the approved wording. The MCP tools tts_source_get and tts_source_verify_spine are the read side of the same flow.

This matters when someone approves a script and a different person, or an agent, generates the audio: nobody can slip in altered text.

What the contract says

In the OpenAPI contract, transcript_source references accepted server-owned script text. You obtain the ids from GET /v1/tts-1.0/source in the same authenticated session. sentence_ids must be unique, contiguous and in source order, from 1 to 1000 ids. The API resolves the text before preview, usage reservation or dispatch. It accepts no client text, paths, hashes or receipts. That is the guarantee: the request can only point at text, not smuggle it in.

The inline alternative is the transcript field, up to 20,000 characters. You use one or the other.

The MCP side

The MCP tools doc lists tts_create among the paid tools, with an idempotency_key, and describes two free read tools. tts_source_get returns the accepted-script manifest to use with tts_create and transcript_source. tts_source_verify_spine checks selected TTS jobs against the accepted script, so you can confirm that the audio you are about to use really came from the approved text.

Audio-related MCP tools and what they cost to call (read 2026-10-03)
ToolKindPurpose
tts_createPaid, idempotency_keyCreate a TTS job, with transcript or transcript_source
tts_source_getRead, freeManifest of the accepted script
tts_source_verify_spineRead, freeCheck selected TTS jobs against the accepted script
stt_createPaid, idempotency_keyCreate a transcription job
music_createPaid, idempotency_keyCreate a music job

A review workflow

Once a script has been accepted, read the manifest with tts_source_get, then call tts_create with the revision and the sentences you want. When the jobs complete, run tts_source_verify_spine over them. A pass means the audio belongs to the approved script; a failure means somebody generated from something else.

  • Use the same idempotency_key on retries so a timeout never double-bills.
  • Select contiguous sentences only; gaps are rejected.
  • Keep revisions immutable in your own records.
  • Treat verification as a gate before captions or publishing.

When to use plain transcript

For a one-off voiceover you wrote yourself, the transcript field is simpler. Reach for transcript_source when approval and generation are separate steps, or when several people or agents touch the pipeline.

Related posts

More in Developers

All Developers posts

Written by Sume