Agent skill · creative production · daymade
stepfun-tts
Generates speech with StepFun contextual TTS, including Chinese/Japanese speech, emotional delivery, inline natural-language directions, cloned voices and batch voice lines. Supports native HTTP, SSE, WebSocket and voice/file lifecycle requests, plus migration from step-tts-2. Use for 阶跃 TTS, 语音合成 or 配音. Not for transcription (use stepfun-asr).
Why this skill is useful
Adds executable scripts for generating TTS with emotional control and migration from an older version, which are not publicly documented.
What it needs
Requires python3 installed locally. Requires stepfun account access. About 2k tokens when loaded. Last updated 2026-08-07. 1,320 stars on the source repository.
What this skill does
StepFun TTS Use the bundled wrapper for synthesis and voice management. Read the API and control reference before choosing a model, cloning a voice, adding expression controls or using streaming. Current official documentation takes precedence over the historical probes in the migration and troubleshooting references. Authentication and prerequisites The CLI reads STEPFUNAPIKEY; Python calls take an explicit apikey. Missing credentials fail without borrowing another account's configuration. Use the endpoint appropriate to the account and region. The wrapper retains its existing China endpoint default; pass endpoint / apibase explicitly for another service host. Do not infer a key's entitlement from its name. HTTP synthesis and the CLI use Python's standard library. WebSocket use additionally requires python3 -m pip install -r scripts/requirements-ws.txt; the dependency loads only when connecting. Entry points Run from this Skill's directory, or use an absolute script path and absolute artifact paths from another directory. For registered consumers, load llmreg.wrapperfor("stepfun-tts").ttsgenerate. Standalone consumers may load scripts/ttsgenerate.py without installing llmreg. The module exposes http and ws, plus the existing synthesize function. See the reference for native body, lifecycle and event examples. Use synthesize(text=...) for the compatible convenience interface. Its defaults live in the HTTP implementation. Preset voices remain useful for generic tasks. Use synthesize(request=...) for an explicit complete native speech body. This mode requires its own model, input and voice; it does not substitute a default identity. extra passes native fields through without a whitelist. Conflicting duplicate arguments fail instead of silently overriding. Use --batch input.jsonl --out-dir /absolute/new-output for independent voice lines. A censored line is reported and skipped while the batch continues; other failures return failure. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills daymade/stepfun-tts