阶跃星辰开放平台把 StepAudio 3 语音系列标成限时免费,截止北京时间 2026 年 11 月 8 日 23:59:59。11 月 9 日 00:00:00 起按定价表计费。覆盖实时语音、TTS、音频生成、音乐和 ASR,开放 API,个人账号要先实名。
截止日和正式价
出处是官方 API 定价。原文写的是:StepAudio 3 系列模型限时免费至北京时间 2026 年 11 月 8 日 23:59:59,自 2026 年 11 月 9 日 00:00:00 起按下表价格正式计费。同一段还说,部分语音模型会随算力成本调整,新价同样从 11 月 9 日 0 点生效,此前调用仍按原价。
定价表里的正式价(人民币)大致是:
stepaudio-3-realtime:0.65 元/会话分钟(39.00 元/会话小时),用户说话和 agent 说话都计入,不足 1 分钟按 1 分钟stepaudio-3-tts语音合成、stepaudio-3-gen音频生成:95.00 元/百万输入文本计费字符;音色复刻/设计各 10.00 元/个音色stepaudio-3-music:无音频输入 16.00 元/输出音频小时,有音频输入 32.00 元/输出音频小时stepaudio-3-asr-max:7.50 元/音频小时
计费字符规则写在定价页:1 个英文字母算 1 个字符,1 个日文字符算 2.5 个,1 个汉字算 3 个,数字、标点、空格各算 1 个。
模型页和定价表的 Model ID 不完全一致。Realtime、Chat、Gen、Music 的模型页仍写限免期用带 -preview 的名字,例如 stepaudio-3-realtime-preview、stepaudio-3-gen-preview、stepaudio-3-music-preview,并说明到期后预览版下线、换成正式付费版。TTS 文档和语音合成 API 当前用的是 stepaudio-3-tts。调之前对着对应模型页抄一遍 ID,别混用。
怎么拿 Key,限速多少
快速开始写明:个人账号先完成个人实名认证,再在控制台「账户管理 > 接口密钥」创建 API Key。Base URL 是 https://api.stepfun.com/v1。
API 速率限制按累计现金充值分档,代金券不计入。个人 V0(累计充值不足 ¥100)是并发 5、RPM 100、TPM 500,000。资源打满时官方可能临时下调各档。
TTS 非流式接口是 POST /v1/audio/speech,单次输入最多 1000 字符,官方音色示例常用 cixingnansheng。curl 大致这样:
curl https://api.stepfun.com/v1/audio/speech \
-H "Authorization: Bearer $STEPFUN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "stepaudio-3-tts",
"input": "智能阶跃,十倍每个人的可能。",
"voice": "cixingnansheng",
"response_format": "mp3"
}' \
--output step.mp3
用 Spring Boot 接 TTS
这里用 Spring Boot 4.1.1,JDK 21,依赖 spring-boot-starter-web 和 spring-boot-starter-restclient,不走 SDK。
stepfun.api-key=${STEPFUN_API_KEY:}
stepfun.model=stepaudio-3-tts
stepfun.voice=cixingnansheng
server.port=8080
package com.example.stepfun;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestClient;
@Component
public class StepfunTtsClient {
public record SpeechRequest(String model, String input, String voice, String response_format) {}
private final RestClient restClient;
private final String model;
private final String voice;
public StepfunTtsClient(RestClient.Builder builder,
@Value("${stepfun.api-key:}") String apiKey,
@Value("${stepfun.model:stepaudio-3-tts}") String model,
@Value("${stepfun.voice:cixingnansheng}") String voice) {
RestClient.Builder b = builder.baseUrl("https://api.stepfun.com");
if (!apiKey.isBlank()) {
b = b.defaultHeader("Authorization", "Bearer " + apiKey);
}
this.restClient = b.build();
this.model = model;
this.voice = voice;
}
public byte[] speak(String text) {
SpeechRequest body = new SpeechRequest(model, text, voice, "mp3");
return restClient.post()
.uri("/v1/audio/speech")
.contentType(MediaType.APPLICATION_JSON)
.body(body)
.retrieve()
.body(byte[].class);
}
}
@RestController
public class TtsController {
private final StepfunTtsClient client;
public TtsController(StepfunTtsClient client) {
this.client = client;
}
@GetMapping("/tts")
public ResponseEntity<?> tts(
@RequestParam(defaultValue = "智能阶跃,十倍每个人的可能。") String text) {
try {
byte[] audio = client.speak(text);
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=step.mp3")
.contentType(MediaType.valueOf("audio/mpeg"))
.body(audio);
} catch (HttpStatusCodeException e) {
return ResponseEntity.status(e.getStatusCode())
.contentType(MediaType.APPLICATION_JSON)
.body(e.getResponseBodyAsString());
}
}
}
编译输出:
[INFO] --- compiler:3.15.0:compile (default-compile) @ stepfun-tts-demo ---
[INFO] Nothing to compile - all classes are up to date.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.488 s
[INFO] Finished at: 2026-11-02T08:14:15+08:00
[INFO] ------------------------------------------------------------------------
本地启动日志:
2026-11-02T08:14:17.585+08:00 INFO ... Tomcat started on port 8080 (http) with context path '/'
2026-11-02T08:14:17.596+08:00 INFO ... Started StepfunTtsApplication in 1.357 seconds
这次没有 StepFun 账号的 Key,所以没拿到真实音频。不设 STEPFUN_API_KEY 时,请求打到 api.stepfun.com 的返回是:
{"error":{"message":"Incorrect API key provided","type":"invalid_api_key"}}
HTTP 401
同类 TTS 限免还可以看 HeyGen Voice Turbo 文本转语音免费到 11 月 30 日。那边是单独的 -free 模型名,写错就照常计费;阶跃这条是定价页给整个 StepAudio 3 系列开的窗口,截止日写在 11 月 8 日。
一起交流
分享你的思考,让讨论更进一步。