Streaming Text To Speech
Generate speech from text using real-time streaming, allowing audio playback to begin before the entire synthesis is complete.
This endpoint streams audio data in chunks, enabling low-latency audio playback for applications requiring immediate feedback.
Streaming Format:
- WAV format: First chunk contains WAV header (size=0xFFFFFFFF for streaming) followed by raw PCM data. Subsequent chunks contain only PCM data.
- MP3 format: Each chunk contains post-processed MP3 data that can be decoded independently.
Use Cases:
- Conversational AI, chatbots and real-time voice assistants
- Interactive applications requiring immediate audio feedback
- Long-form content where waiting for full synthesis is impractical
Request Parameters:
Uses the same TTSRequest schema as the standard TTS endpoint. Set output.audio_format to "wav" or "mp3" to control the streaming format.
/v1/text-to-speech/streamAuthorizations
X-API-KEYstringheaderrequiredAPI key for authentication. You can obtain an API key from the Typecast API Console.
Text-to-speech streaming request parameters
seedintegerUnsigned integer seed for reproducible speech generation. The same seed with the same input parameters will produce identical audio output.
- Must be a non-negative integer (≥ 0). Negative values are not accepted.
- If omitted, the server generates a random seed each time, producing slight variations.
textstringrequiredText to convert to speech. Minimum 1 character, maximum 2000 characters. Credits consumed based on text length. Supports multiple languages including English, Korean, Japanese, and Chinese. Special characters and punctuation are handled automatically.
modelssfm-v30 | ssfm-v21requiredVoice model to use for speech synthesis.
- ssfm-v30: Latest model with improved prosody and additional emotion presets (recommended)
- ssfm-v21: Stable production model with reliable quality
ssfm-v30ssfm-v21outputobjectStreaming audio output settings including pitch (-12 to +12 semitones), tempo (0.5x to 2.0x), format (wav/mp3), and target_lufs (-70 to 0 LUFS). Note: volume is not available in streaming mode.
Show nested model
audio_pitchintegerAdjusts the pitch in semitones to affect perceived gender and age: -12 (one octave lower, deeper voice), -6 (half octave lower), 0 (original pitch, default), +6 (half octave higher), +12 (one octave higher, higher voice)
audio_temponumberControls speech speed: 0.5 (half speed, very slow and clear), 0.75 (slightly slower than normal), 1.0 (normal speaking speed, default), 1.5 (50% faster than normal), 2.0 (double speed, very fast speech)
target_lufsnumberSets the target absolute loudness (LUFS) for streaming output audio. This normalizes generated audio to a consistent loudness regardless of the original source. Cannot be used with the volume parameter.
Recommended values: -14 (common streaming standard), -23 (broadcast standard).
audio_formatwav | mp3Output audio format for streaming.
WAV format:
- Uncompressed PCM audio
- 16-bit depth, mono channel, 32000 Hz sample rate
- Chunked transfer: first chunk contains the WAV header (size = 0xFFFFFFFF), subsequent chunks contain raw PCM data
- Recommended when you want to play audio as it arrives
MP3 format:
- Compressed MPEG Layer III audio
- 320 kbps bitrate, 44100 Hz sample rate
- Chunked transfer: each chunk contains independently decodable MPEG frames
- Recommended for bandwidth-constrained clients
wavmp3promptPromptEmotion and style settings for the generated speech, including emotion type (happy/sad/angry/normal) and intensity (0.0 to 2.0) to control the emotional expression
SmartPrompt (ssfm-v30)
next_textstringText that comes AFTER the text field in TTSRequest. Provides forward context for emotion inference.
The model analyzes the flow: previous_text → text (synthesized) → next_text
- Maximum 2000 characters
- Helps the model anticipate emotional transitions
- Leave empty if no following context is available
emotion_typestringDiscriminator field to identify the prompt type. Must be set to "smart" for context-aware emotion inference.
previous_textstringText that comes BEFORE the text field in TTSRequest. Provides backward context for emotion inference.
The model analyzes the flow: previous_text → text (synthesized) → next_text
- Maximum 2000 characters
- Helps the model understand emotional build-up and context
- Leave empty if no preceding context is available
PresetPrompt (ssfm-v30)
emotion_typestringDiscriminator field to identify the prompt type. Must be set to "preset" for preset-based emotion control.
emotion_presetnormal | sad | happy | angry | whisper | toneup | tonedownEmotion preset to apply to the generated speech.
Supported emotions: normal, happy, sad, angry, whisper, toneup, tonedown
Check available emotions for each voice through the /v2/voices API.
normalsadhappyangrywhispertoneuptonedownemotion_intensitynumberControls the strength of emotional expression in the generated speech.
- 0.0: Completely neutral, no emotional coloring
- 0.5: Subtle emotional hints
- 1.0: Standard emotional expression (default)
- 1.5: Strong emotional emphasis
- 2.0: Maximum intensity, highly expressive
Prompt (ssfm-v21)
emotion_presetobjectEmotion preset to apply.
Supported emotions for ssfm-v21: normal, happy, sad, angry
Check available emotions for each voice through the /v2/voices API.
emotion_intensityobjectControls the strength of emotional expression (0.0 to 2.0).
- 0.0: Completely neutral
- 1.0: Standard expression (default)
- 2.0: Maximum intensity
languagestringLanguage code following ISO 639-3 standard. Case-insensitive (both "ENG" and "eng" are accepted). If not provided, will be auto-detected based on text content.
ssfm-v30 Supported Languages (37)
| Code | Language |
|---|---|
| ARA | Arabic |
| IND | Indonesian |
| POR | Portuguese |
| BEN | Bengali |
| ITA | Italian |
| RON | Romanian |
| BUL | Bulgarian |
| JPN | Japanese |
| RUS | Russian |
| CES | Czech |
| KOR | Korean |
| SLK | Slovak |
| DAN | Danish |
| MSA | Malay |
| SPA | Spanish |
| DEU | German |
| NAN | Min Nan |
| SWE | Swedish |
| ELL | Greek |
| NLD | Dutch |
| TAM | Tamil |
| ENG | English |
| NOR | Norwegian |
| TGL | Tagalog |
| FIN | Finnish |
| PAN | Punjabi |
| THA | Thai |
| FRA | French |
| POL | Polish |
| TUR | Turkish |
| HIN | Hindi |
| UKR | Ukrainian |
| VIE | Vietnamese |
| HRV | Croatian |
| YUE | Cantonese |
| ZHO | Chinese |
| HUN | Hungarian |
ssfm-v21 Supported Languages (27)
| Code | Language |
|---|---|
| ARA | Arabic |
| IND | Indonesian |
| RON | Romanian |
| BUL | Bulgarian |
| ITA | Italian |
| RUS | Russian |
| CES | Czech |
| JPN | Japanese |
| SLK | Slovak |
| DAN | Danish |
| KOR | Korean |
| SPA | Spanish |
| DEU | German |
| MSA | Malay |
| SWE | Swedish |
| ELL | Greek |
| NLD | Dutch |
| TAM | Tamil |
| ENG | English |
| POL | Polish |
| TGL | Tagalog |
| FIN | Finnish |
| POR | Portuguese |
| UKR | Ukrainian |
| FRA | French |
| HRV | Croatian |
| ZHO | Chinese |
voice_idstringrequiredVoice identifier. Two prefixes are supported:
tc_— Built-in Typecast voices (e.g.,tc_60e5426de8b95f1d3000d7b5). See Listing all voices for available IDs.uc_— Custom voices created via Instant cloning (e.g.,uc_64a1b2c3d4e5f6a7b8c9d0e1). Only the owner of a cloned voice can use it.
Case-sensitive: must use lowercase prefix.