
Human-level speech synthesis across six languages, with 12 system voices, natural-language delivery direction, and streaming playback.
Human-level speech synthesis across six languages, with 12 system voices, natural-language delivery direction, and streaming playback.
Character counting follows StepFun pricing: one Chinese character counts as one character, two English letters count as one character, and two punctuation marks count as one character.
Also known as StepFun StepAudio 3 TTS
stepaudio-3-tts/v1/audio/speechPOST/v1/audio/speech:streamstepfun/stepaudio-3-ttsLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
StepAudio 3 TTS serves speech through POST /v1/audio/speech and returns playable audio. Send the text to speak as input with the model id stepaudio-3-tts. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/audio/speech \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "stepaudio-3-tts",
"input": "Welcome to EmpirioLabs. Your build just finished."
}' \
--output speech.mp3import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/audio/speech",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={"model": "stepaudio-3-tts", "input": "Welcome to EmpirioLabs."},
)
with open("speech.mp3", "wb") as f:
f.write(response.content)Request parameters supported by the StepAudio 3 TTS API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| input | string | - | max 1000 | Text to synthesize. Maximum 1,000 characters. Content in parentheses is treated as delivery direction and is not spoken. |
| voice | enum | lively-girl | lively-girl, vibrant-youth, soft-spoken-gentleman, magnetic-v... | Official StepFun voice. Custom cloned voice IDs are also accepted via the API. |
| instruction | string | - | max 500 | Global emotion or style guidance for the whole passage, in natural language. Maximum 500 characters. |
| speed | number | 1 | 0.5 to 2 | Speech speed. |
| volume | number | 1 | 0.1 to 2 | Output volume. |
| language | enum | en | en, zh, ja, ko, fr, es | Target language. Japanese, Korean, French, and Spanish are in preview. |
| response_format | enum | mp3 | mp3, wav, flac, opus, pcm | Output audio format. |
| sample_rate | enum | 24000 | 8000, 16000, 22050, 24000 | Output sample rate in Hz. |
| markdown_filter | boolean | false | - | Strip Markdown syntax from the input before it is spoken. |
| pronunciation_map | string | - | - | Optional pronunciation overrides, as an object with a tone array of "written/spoken" rules. |
Maximum input is 1,000 characters. Content in parentheses is treated as delivery direction and is not spoken. Use instruction for global emotion or style guidance, up to 500 characters. Twelve system voices are available, and a custom cloned voice ID is also accepted. Recognized languages are Chinese, English, Japanese, Korean, French, and Spanish, with languages other than Chinese and English in preview. Output formats are mp3, wav, flac, opus, and pcm at 8000, 16000, 22050, or 24000 Hz. Wav is returned as a complete file rather than streamed. This model does not support voice_label.
On EmpirioLabs, StepAudio 3 TTS is billed pay as you go: Synthesis $0.36 per 10,000 characters. The live rate card on this page always matches what the API charges.
StepAudio 3 TTS is served through POST /v1/audio/speech on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs StepAudio 3 TTS in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.