
StepFun streaming speech recognition model for Chinese and English audio transcription.
StepFun streaming speech recognition model for Chinese and English audio transcription.
EmpirioLabs exposes the standard /v1/audio/transcriptions endpoint and returns the final transcript in the normal transcription response format.
Also known as StepAudio ASR, StepFun StepAudio 2.5 ASR, StepAudio-2.5-ASR, stepaudio-2-5-asr
stepaudio-2-5-asr/v1/audio/transcriptionsstepaudio-2.5-asrstepfun/stepaudio-2-5-asrstepfun/stepaudio-2.5-asrLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
StepAudio 2.5 ASR runs through POST /v1/audio/transcriptions. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "stepaudio-2-5-asr",
"audio_url": "https://example.com/meeting-recording.mp3"
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/audio/transcriptions",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "stepaudio-2-5-asr",
"audio_url": "https://example.com/meeting-recording.mp3",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the StepAudio 2.5 ASR API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| file | audio | - | - | Audio file upload for transcription. |
| file_url | string | - | - | Public URL to an audio file. |
| audio_base64 | string | - | - | Base64 audio payload for JSON requests. |
| language | enum | en | en, zh | Recognition language. |
| hotwords | array | - | - | Optional hotword list. |
| enable_itn | boolean | true | - | Enable inverse text normalization. |
| enable_timestamp | boolean | false | - | Return timestamp fields from StepFun SSE events when available. |
| format | enum | wav | wav, mp3, ogg, pcm | Audio container format. |
| codec | string | - | - | PCM codec such as pcm_s16le. |
| rate | integer | 16000 | 8000 to 48000 | PCM sample rate in Hz. |
| bits | integer | 16 | 8 to 32 | PCM bit depth. |
| channel | integer | 1 | 1 to 8 | PCM channel count. |
Supports wav, mp3, ogg, and pcm input. PCM requests should include codec, sample rate, bit depth, and channel count. Recognition language supports Chinese and English. Timestamp output is available through enable_timestamp.
On EmpirioLabs, StepAudio 2.5 ASR is billed pay as you go: Transcription $0.022 per hour of audio. The live rate card on this page always matches what the API charges.
StepAudio 2.5 ASR is served through POST /v1/audio/transcriptions on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs StepAudio 2.5 ASR 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.