---
title: "Text-to-Speech (SSE)"
method: POST
path: "/tts/sse"
tags: ["Tts"]
---

# Text-to-Speech (SSE)

`POST /tts/sse`

Stream audio with extra metadata from a complete transcript

## Headers

- `Cartesia-Version` '2026-03-01', date, required

## Request body

- TTSSSERequest
  - `model_id` 'sonic-3.5' | 'sonic-3' | 'sonic-latest', required — The ID of the model to use for the generation. See [Models](/build-with-cartesia/tts-models/latest) all options.
  - `transcript` string, required
  - `voice` TTSRequestVoiceSpecifier, required
    - `mode` 'id', required
    - `id` string, required — The ID of the voice. Find one in the [Voice Library](https://play.cartesia.ai/voices) or via [List Voices](/api-reference/voices/list).
  - `output_format` SSEOutputFormat, required
    - `container` 'raw', required
    - `encoding` 'pcm_f32le' | 'pcm_s16le' | 'pcm_mulaw' | 'pcm_alaw', required — The encoding format for output audio. See [TTS Output Audio Format](/build-with-cartesia/capability-guides/tts-output-audio-format) if you're unsure what to use.
    - `sample_rate` 8000 | 16000 | 22050 | 24000 | 44100 | 48000, required
  - `language` 'en' | 'fr' | 'de' | 'es' | 'pt' | 'zh' | 'ja' | 'hi' | 'it' | 'ko' | 'nl' | 'pl' | 'ru' | 'sv' | 'tr' | 'tl' | 'bg' | 'ro' | 'ar' | 'cs' | 'el' | 'fi' | 'hr' | 'ms' | 'sk' | 'da' | 'ta' | 'uk' | 'hu' | 'no' | 'vi' | 'bn' | 'th' | 'he' | 'ka' | 'id' | 'te' | 'gu' | 'kn' | 'ml' | 'mr' | 'pa' — The language that the given voice should speak the transcript in. This may depend on the model you're using. See [Models](/build-with-cartesia/tts-models/latest) for details.
  - `add_timestamps` boolean, nullable — Whether to return word-level timestamps. If `false` (default), no word timestamps will be produced at all. If `true`, the server will return timestamp events containing word-level timing information.
  - `add_phoneme_timestamps` boolean, nullable — Whether to return phoneme-level timestamps. If `false` (default), no phoneme timestamps will be produced. If `true`, the server will return timestamp events containing phoneme-level timing information.
  - `use_normalized_timestamps` boolean, nullable — Whether to use normalized timestamps (True) or original timestamps (False).
  - `pronunciation_dict_id` string, nullable — The ID of a pronunciation dictionary to use for the generation. Pronunciation dictionaries are supported by `sonic-3` models and newer.
  - `generation_config` GenerationConfig — Configure the various attributes of the generated speech. Available on `sonic-3` and `sonic-3.5`; not available on earlier models. See [Volume, Speed, and Emotion](/build-with-cartesia/capability-guides/volume-speed-emotion) for a guide on this option.
    - `volume` number, double — Adjust the volume of the generated speech between 0.5x and 2.0x the default volume. Valid values are between [0.5, 2.0] inclusive.
    - `speed` number, double — Adjust the speed of the generated speech between 0.6x and 1.5x the default speed. Valid values are between [0.6, 1.5] inclusive.
    - `emotion` 'neutral' | 'happy' | 'excited' | 'enthusiastic' | 'elated' | 'euphoric' | 'triumphant' | 'amazed' | 'surprised' | 'flirtatious' | 'curious' | 'content' | 'peaceful' | 'serene' | 'calm' | 'grateful' | 'affectionate' | 'trust' | 'sympathetic' | 'anticipation' | 'mysterious' | 'angry' | 'mad' | 'outraged' | 'frustrated' | 'agitated' | 'threatened' | 'disgusted' | 'contempt' | 'envious' | 'sarcastic' | 'ironic' | 'sad' | 'dejected' | 'melancholic' | 'disappointed' | 'hurt' | 'guilty' | 'bored' | 'tired' | 'rejected' | 'nostalgic' | 'wistful' | 'apologetic' | 'hesitant' | 'insecure' | 'confused' | 'resigned' | 'anxious' | 'panicked' | 'alarmed' | 'scared' | 'proud' | 'confident' | 'distant' | 'skeptical' | 'contemplative' | 'determined' — The primary emotions are `neutral`, `calm`, `angry`, `content`, `sad`, `scared`. For more options, see [Volume, Speed, and Emotion](/build-with-cartesia/capability-guides/volume-speed-emotion#emotion-controls-beta).
  - `speed` 'slow' | 'normal' | 'fast' — This property is deprecated and may not work for all voices. Use `generation_config.speed` instead. Influences the speed of the generated speech.
  - `context_id` string, nullable

## Response `200`

Server-sent events stream. Each frame is `data: <json>\n\n` where the JSON payload matches `TTSSSEEvent`.

---

[API](https://skmtc.net/cartesia/apis/cartesia-api.md) · [All operations](https://skmtc.net/cartesia/apis/cartesia-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cartesia/cartesia-api/revisions/8910812440d3/schema)
