Audio Speech 语音合成 (TTS)
语音合成(Text To Speech,TTS)接口,支持将文本转换为自然流畅的语音音频。 采用同步模式,接口直接返回生成的音频文件 URL,无需轮询任务状态。
接口地址
POST /api/openai/audioSpeech
请求头 Headers
| 名称 | 是否必须 | 说明 |
|---|
| Authorization | 是 | Bearer API_KEY |
| Content-Type | 是 | application/json |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|
| model | string | 是 | TTS 模型名称,见下方支持模型 |
| text | string | 是 | 需要转换的文本内容,最大 5000 字符 |
| voice | string | 否 | 音色角色,不传则使用模型默认音色 |
请求示例
{
"model": "cosyvoice-v1",
"text": "你好,欢迎使用AISP语音合成服务",
"voice": "Cherry"
}
cURL 示例
curl https://api.hejushuzi.com/api/openai/audioSpeech \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "cosyvoice-v1",
"text": "你好,欢迎使用AISP语音合成服务",
"voice": "Cherry"
}'
成功返回
{
"code": 200,
"msg": "success",
"data": {
"type": "audio",
"url": "/uploads/audio/20260801/abc123.wav",
"usage": {
"characters": 21
}
}
}
返回字段说明
| 字段 | 说明 |
|---|
| code | 状态码,200 表示成功 |
| data.type | 资源类型,固定为 "audio" |
| data.url | 音频文件访问地址 |
| data.usage.characters | 本次消耗的字符数(用于计费) |
支持模型
| 模型 | 厂商 | 说明 | 计费单价 |
|---|
| cosyvoice-v1 | 阿里百炼 | CosyVoice 语音合成 | ¥0.05 / 千字符 |
| qwen3-tts-flash | 阿里百炼 | 通义千问 TTS 快速版 | ¥0.08 / 千字符 |
可用音色
以下为平台支持的音色角色,通过 voice 参数指定:
| 音色 ID | 说明 | 适用模型 |
|---|
| Cherry | 女声 · 英语 | cosyvoice-v1 |
| longxiaochun | 龙小春 · 女声 | cosyvoice-v1 |
| zhiyan | 志妍 · 女声 | cosyvoice-v1 / qwen3-tts-flash |
| xiaoning | 晓宁 · 女声 | cosyvoice-v1 / qwen3-tts-flash |
| zhiqiang | 志强 · 男声 | cosyvoice-v1 / qwen3-tts-flash |
提示 不同模型支持的音色可能不同,具体以模型实际支持为准。不传 voice 参数时使用模型默认音色。
计费说明
- 计费方式:按实际消耗字符数计费
- 计费公式:费用 = characters / 10,000 × 单价
- 字符数由接口返回的 usage.characters 字段统计
- 费用保留 6 位小数,实时从账户余额扣除
- 余额不足时接口直接返回 403,不会调用模型
错误码
| code | 说明 | 触发场景 | 解决方案 |
|---|
| 400 | 参数错误 | 缺少 model、text 参数或参数格式不正确 | 检查请求参数是否完整 |
| 401 | API Key 无效 | Authorization 头缺失或 API Key 不存在 | 检查 API Key 是否正确 |
| 403 | 余额不足 | 账户余额低于本次调用费用 | 充值账户余额后重试 |
| 404 | 模型不存在 | 传入了不支持的模型名称 | 查看支持的模型列表 |
| 500 | 音频生成失败 | 模型服务异常或音频生成失败 | 稍后重试或联系客服 |
错误返回示例
{ "code": 400, "msg": "Parameter error: model is required" }
{ "code": 401, "msg": "Invalid API Key" }
{ "code": 403, "msg": "Insufficient balance" }
{ "code": 404, "msg": "Model not found: xxx" }
{ "code": 500, "msg": "Audio generation failed" }