GET
/v1/schemas/byteplus/audio/tts/create?kind=output
Accept:
| field | recorded source |
|---|---|
| schema | Source linked above. probe-verified Source traceebffeaf934197130d6b4cc6534a33b6b04d51a5a71ce2403b2bcf8c7e2cb627f{
"fetchedAt": 1786770726,
"extractorVersion": "1",
"verifiedAt": "2026-08-12"
} |
Response body
5 properties · 0 required · 2 $defs| property | type | description | constraints |
|---|---|---|---|
| audio | string | Base64-encoded audio in the requested format. | |
| duration | number | Length of the delivered audio in SECONDS (float), after speech_rate is applied. | |
| original_duration | number | Length in SECONDS before rate adjustment — the billing basis, capped at 120. | |
| url | string | Temporary download URL for the same audio, signed with an x-expires deadline. | |
| subtitle | object | Present when audio_config.enable_subtitle was set. Word timings are NESTED inside each sentence — there is no top-level words array — and the block repeats the full text alongside them. |
Types
2 $defsTTSSubtitleSentenceobject
One timed sentence, carrying its own word-level breakdown. Times are MILLISECONDS.
| text | string | ||
| start_time | number | ||
| end_time | number | ||
| words | TTSSubtitleWord[] |
TTSSubtitleWordobject
One timed word. Times are MILLISECONDS — unlike the response's duration fields, which are seconds. Note the tokenizer emits whitespace as its own zero-or-near-zero-width entry.
| text | string | ||
| start_time | number | ||
| end_time | number |
Validate a payload
before you spend tokensshell
$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"byteplus","endpointId":"tts/create","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}