stepfun-asr

Transcribe Chinese and English audio via StepFun's stepaudio-2.5-asr SSE endpoint.

1.4k|216|Updated Oct 22, 2025
One-click install
npx skills add https://github.com/daymade/claude-code-skills --skill stepfun-asr
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: stepfun-asr
Source: https://github.com/daymade/claude-code-skills/tree/main/daymade-audio/stepfun-asr
Command: npx skills add https://github.com/daymade/claude-code-skills --skill stepfun-asr

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

StepFun's stepaudio-2.5-asr model lives on a non-obvious SSE endpoint (/v1/audio/asr/sse), and sending it to the standard /v1/audio/transcriptions endpoint returns a misleading model not supported error that looks identical to a permission problem. This Skill provides a working script and verified API reference so long audio (up to ~30 minutes) transcribes correctly in a single call without chunking.

Core Features & Use Cases

  • Single-call long-audio transcription: Handles 5-30 minute recordings in one request using the 32K context window, with ~85-101x real-time factor on long audio.
  • Correct endpoint and body handling: The bundled Python script builds the nested base64 JSON body, parses SSE delta/done/error events, and avoids the wrong-endpoint trap.
  • Documented edge cases: Covers Plan-vs-Normal API key failures, repetition hallucination on highly repetitive audio, and mid-stream censorship errors.
  • Use Case: Transcribe a 17-minute Chinese podcast recording to plain text in about 10 seconds, with optional JSON output including token usage for billing.

Quick Start

Ask the assistant to transcribe an audio file such as meeting.mp3 using the stepfun-asr skill after setting your STEPFUN_API_KEY.

Frequently Asked Questions about stepfun-asr

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I transcribe audio with StepFun stepaudio-2.5-asr?

Run the bundled script with `python3 scripts/asr_transcribe.py audio.mp3` after setting the STEPFUN_API_KEY environment variable. It posts base64 audio to the `/v1/audio/asr/sse` endpoint and prints the transcript from the `transcript.text.done` SSE event.

Why does stepaudio-2.5-asr return 'model not supported'?

This error means the request went to the wrong endpoint, not that the model is unavailable. stepaudio-2.5-asr lives on `/v1/audio/asr/sse` with a JSON base64 body, while `/v1/audio/transcriptions` only serves the older step-asr family.

What audio formats does StepFun ASR support?

The API accepts mp3, wav, ogg, opus (in an ogg container), and raw pcm. PCM additionally requires sample rate, channel count, and bit depth fields. Other formats like m4a or webm must be transcoded with ffmpeg first.

Can stepaudio-2.5-asr handle long audio files?

Yes, audio up to about 30 minutes fits in a single call thanks to the 32K context window, with roughly 85-101x real-time factor. Longer audio must be split with ffmpeg before sending, since the API rejects oversized payloads.

Why does my StepFun API key fail on audio endpoints?

StepFun 'Plan' subscription keys are restricted to text models and silently fail with 4xx errors on audio endpoints. You need a separate 'Normal' key from the same API Keys page in the StepFun console.

When should I use step-asr-1.1 instead of stepaudio-2.5-asr?

Use step-asr-1.1 as a cross-check when audio is over 90 seconds and highly repetitive, since stepaudio-2.5-asr can hallucinate extra repetitions there. For many short clips under 10 seconds, the speed advantage is only about 2x, so migration ROI is modest.