Realtime TTS-2 is live. Built for realtime conversation that feels human. Learn more

TextToSpeech

Synthesize speech (batch)

Submit many independent synthesis requests as one background job and immediately receive a [long-running operation](https://google.aip.dev/151). Poll the operation via the Get operation endpoint until `done` is `true`, then download the results file named by `resultsUri` — it lists every item's outcome, keyed by the `customId` you assigned. Each item's `request` is an ordinary synthesis request, validated exactly as the async endpoint would validate it; one invalid item rejects the whole batch at submit. That includes `timestampType` in a language without alignment support — like async jobs, a batch item never returns audio with requested timestamps silently missing.

POST/tts/v1/voice:synthesizeBatch

Authorizations

Authorizationstringrequired

Your authentication credentials. For Basic authentication, please populate Basic $INWORLD_API_KEY. You can create a key in one command with the Inworld CLI: inworld workspace add-key.

Body

application/json

itemsobject[]required

The requests to synthesize, between 1 and 10000. The whole request must also fit the 16 MiB message limit, which caps the aggregate around 4M characters — the item ceiling is only reachable when items are short.

Show child attributes

customIdstringrequired

Your key for this item, echoed into the results file. Required, and unique within the batch — it is the only thing correlating a result back to what you submitted. Treat it as opaque; the service never interprets it.

requestobjectrequired

The synthesis request for this item, identical in shape to a synchronous request and subject to the same validation. On-Demand accounts are additionally capped at 10,000 characters across the whole batch.

Show child attributes

textstringrequired

The text to be synthesized into speech. Maximum input of 100,000 characters.