The HeyGen Voice model synthesizes speech two ways from the same request body:
POST /v3/models/audio/ttswaits for generation and returns one audio URL.POST /v3/models/audio/tts/streamreturns ordered audio parts as Server-Sent Events (SSE).
Request fields
Unknown fields return
400 invalid_parameter. For <break> pauses, use Third Party Speech.
Generate completed speech
Response
audio_url is one mono PCM16 WAV at 44.1 kHz; duration is in seconds.
Stream speech
The stream istext/event-stream. Disable response buffering and handle each event as it arrives.
part_index order; each part is a complete WAV container, so decode them individually rather than concatenating the bytes.
with_timestamps is true. Each word carries text, start_time and end_time in seconds, and a confidence from 0 to 1.
data: [DONE]. If synthesis fails mid-stream, the stream ends with an error event instead and no [DONE]:

