tts API
Kokoro 82M 本地文字转语音接口。公网路径统一挂在 /api/tts,测试页面挂在 /tts。
这个服务适合短文本 TTS 生成。服务端固定 24kHz 采样率,模型生成按队列串行执行,避免同一台机器上多个模型任务同时抢 CPU 和内存。
页面
GET /tts
打开浏览器测试面板。
公网地址:
https://6767.chat/tts
路由
GET /api/tts/health
GET /api/tts/voices
POST /api/tts
POST /api/tts/generate
POST /api/tts/generate/json
GET /api/tts/outputs/<filename>
GET /api/tts/download/<filename>
业务风格:
/api/tts/<具体业务>
其中 /api/tts 保留为最小调用入口,等价于 /api/tts/generate。
POST /api/tts
请求格式支持 application/json、multipart/form-data、application/x-www-form-urlencoded、text/plain。
最小参数:
| 字段 | 必填 | 默认 | 说明 |
|---|---|---|---|
text | 是 | - | 要合成的文本,当前限制 3000 字符以内。 |
voice | 否 | af_heart | 音色。 |
format | 否 | wav | 返回格式:wav、mp3、m4a、mp4。 |
speed | 否 | 1.0 | 语速,范围 0.65 到 1.35。 |
采样率固定:
sample_rate = 24000
成功时直接返回音频文件,不包 JSON。
示例:
curl -X POST "https://6767.chat/api/tts" \
-H "Content-Type: application/json" \
--data '{"text":"Hello from Kokoro."}' \
--output output.wav
返回 MP3:
curl -X POST "https://6767.chat/api/tts" \
-H "Content-Type: application/json" \
--data '{"text":"Hello from Kokoro.","format":"mp3"}' \
--output output.mp3
返回头包含生成信息:
X-TTS-Seconds: 1.24
X-TTS-Sample-Rate: 24000
X-TTS-Voice: af_heart
X-TTS-Speed: 1.0
X-TTS-Format: wav
X-TTS-Queued-Ahead: 0
POST /api/tts/generate/json
用于网页面板或需要 JSON 元数据的客户端。参数同 /api/tts,成功返回音频 URL。
示例:
curl -X POST "https://6767.chat/api/tts/generate/json" \
-H "Content-Type: application/json" \
--data '{"text":"Hello from Kokoro.","format":"m4a"}'
成功返回:
{
"audio_url": "/api/tts/outputs/kokoro_1779381254151_9bcc8096.m4a",
"filename": "kokoro_1779381254151_9bcc8096.m4a",
"seconds": 1.36,
"sample_rate": 24000,
"voice": "af_heart",
"speed": 1.0,
"format": "m4a",
"queued_ahead": 0
}
GET /api/tts/voices
返回可用音色、格式和默认参数。
当前音色:
af_heart
af_bella
af_nicole
af_sarah
af_sky
am_adam
am_michael
bf_emma
bf_isabella
bm_george
bm_lewis
GET /api/tts/health
健康检查。
{
"ok": true,
"model_loaded": true,
"queued": 0
}
限速和队列
同 IP 限速:
20 秒内最多接收 10 个请求
达到上限时返回:
429 Too Many Requests
模型生成策略:
请求可以并发进入,模型任务按进入顺序串行生成。
这样可以让同 IP 短时间突发进队,但不会让多个模型任务同时占满 CPU 和内存。
错误
| 状态码 | 说明 |
|---|---|
400 | 参数错误,例如文本为空、未知音色、格式不支持、语速超出范围。 |
429 | 同 IP 20 秒内超过 10 个请求。 |
500 | 模型生成或音频转码失败。 |
更新日志
2026-05-22 初始发布
- 新增
/api/ttsKokoro 82M 本地 TTS 生成接口。 - 新增
/tts浏览器测试页面。 - 支持
wav、mp3、m4a、mp4输出。 - 默认
voice=af_heart、format=wav、speed=1.0、采样率24000。 - 加入同 IP 20 秒 10 请求限速和模型串行队列。