Generate a voiceover
generate_voiceoverCosts per 1,000 characters of the text (at least 1 cent), charged only after confirm_cents matches the quote: starts one narration of the text.
Args: text: 1-100000 chars. voice: a voice name from list_voices. model: a tts model id from list_models (optional; Premium voices need their own model and English text). confirm_cents: the price the user agreed to (from tool_cost_estimate); 0 with quote_only. idempotency_key: unique per purchase; a retry with the same key never buys twice. Idempotency is keyed on (this token, this tool, idempotency_key), not on the arguments: reusing an idempotency_key with different arguments returns the first result. quote_only: true returns the price and buys nothing.
Returns: {ok, job_id, kind:'tts', poll_after_s, cents}: poll with wait_for_job (the finished job has audio_url) A job that fails is refunded to the balance, but it still counts toward this token's daily limit until midnight UTC.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"text": "<text>",
"voice": "<voice>",
"confirm_cents": "<confirm_cents>"
},
"name": "generate_voiceover"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| model | No | ||
| voice | Yes | ||
| quote_only | No | true: return the price and buy nothing. | |
| confirm_cents | Yes | The price in cents the user agreed to, from tool_cost_estimate or a quote_only call. Pass 0 with quote_only. | |
| idempotency_key | No | Any unique string per purchase; a retry with the same key never buys twice. |