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
}