Home Blog

How to Use the StepAudio 3 TTS API

StepAudio 3 TTS via API cover

Sep 15, 2026

EmpirioLabs AI

Short answer: StepAudio 3 TTS is StepFun's flagship text-to-speech model, available on EmpirioLabs through the standard OpenAI-style speech endpoint. Send up to 1,000 characters to POST /v1/audio/speech with model: "stepaudio-3-tts", pick one of twelve system voices, and describe the delivery you want in ordinary English with instruction.

Your first request

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": "Your call is being connected. Thanks for waiting.",
    "voice": "lively-girl"
  }'

The response carries a signed URL to the generated audio. The default format is mp3 at 24,000 Hz.

Choosing a voice

Twelve system voices ship with the model. Seven carry over from StepAudio 2.5, and five are new: Alfie, Ethan, Matthew, qingshunvsheng, and tianrunnvsheng.

VoiceCharacterGood for
lively-girlBright, energetic femaleAssistants, product walkthroughs
vibrant-youthWarm young maleAudiobooks, video dubbing
soft-spoken-gentlemanCalm, gentle maleLong-form narration
magnetic-voiced-maleDeep, weighty maleTrailers, dramatic reads
elegantgentle-femaleSincere, reassuring femaleSupport lines, education
livelybreezy-femaleLight and persuasiveMarketing, short video
zixinnanshengConfident maleAudiobooks, training

The full list is on the model reference. A custom cloned voice ID is accepted in the same field.

Directing the delivery

Instead of preset emotion tags, you write what you want and the model performs it. instruction sets the tone for the whole passage and accepts up to 500 characters.

{
  "model": "stepaudio-3-tts",
  "input": "We found something in the logs.",
  "voice": "magnetic-voiced-male",
  "instruction": "Slow and deliberate, like a trailer voice. Let the pause land."
}

For a single word or phrase, put the direction in parentheses inside input instead.

Languages

Set language to en, zh, ja, ko, fr, or es. Japanese, Korean, French, and Spanish are in preview. Leave it out and the model reads English.

Output formats

Choose mp3, wav, flac, opus, or pcm with response_format, and set sample_rate to 8000, 16000, 22050, or 24000.

Three things that catch people out

  1. Parentheses are direction, not words. Anything inside () in input is read as a delivery cue and never spoken. If you need a bracketed aside read aloud, rewrite it without parentheses.
  2. 48,000 Hz is not available on this model. It appears in some general text-to-speech documentation, but StepAudio 3 TTS rejects it. Stay on 24,000 Hz for the highest quality.
  3. instruction and voice_label are not interchangeable. StepAudio 3 TTS takes instruction and rejects voice_label. Step TTS 2 is the opposite. Porting a request between them means swapping that field.

Pricing and limits

Billing is per character of input, pay as you go, with no subscription and no minimum. One Chinese character counts as one character, and two English letters count as one. The live rate is on the model page and the pricing page. Requests cap at 1,000 characters, so split longer scripts into sentence-sized calls and join the audio yourself.

Try it without writing code

Open StepAudio 3 TTS in the playground to audition voices and instructions, then copy the settings into your request. Full parameter reference: docs.empiriolabs.ai/models/stepaudio-3-tts.

Ready to use better endpoints?

Explore our models, or contact us about business inquiries, custom deployments, or anything else.