CosyVoice 的 HTTP 非实时语音合成接口,包含非流式和 SSE 流式调用、请求参数及返回字段。
接口地址
将 YOUR_WORKSPACE_ID 替换为对应地域的业务空间 ID,并使用同地域的 API Key。
华北2(北京)
POST https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer
请求头
| 参数 | 类型 | 必选 | 说明 |
|---|---|---|---|
|
| 必选 | 鉴权令牌,格式为 |
|
| 必选 | 固定为 |
|
| 可选 | 流式输出时设置为 |
调用示例
非流式
curl -X POST "https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosyvoice-v3-flash",
"input": {
"text": "我家的后面有一个很大的花园。",
"voice": "longanyang",
"format": "wav",
"sample_rate": 24000
}
}'
流式
curl --no-buffer -X POST "https://YOUR_WORKSPACE_ID.cn-beijing.maas.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
"model": "cosyvoice-v3-flash",
"input": {
"text": "我家的后面有一个很大的花园。",
"voice": "longanyang",
"format": "wav",
"sample_rate": 24000
}
}'
说明SSE 事件可能包含多行 data:。合并同一事件的所有 data: 行后解析 JSON;将音频块按事件顺序 Base64 解码并拼接。结束帧的 output.finish_reason 为 stop,并返回完整音频 URL。
请求体
| 参数 | 类型 | 必选 | 默认值 | 说明 |
|---|---|---|---|---|
|
| 必选 | — | 语音合成模型 ID。支持的模型与地域请参见非实时语音合成。 |
|
| 必选 | — | 输入参数对象。 |
|
| 必选 | — | 待合成文本。使用 SSML 时同时设置 |
|
| 必选 | — | |
|
| 可选 |
| 音频编码格式。可选 |
|
| 可选 | 22050 | 音频采样率(Hz)。可选 8000、12000、16000、22050、24000、44100、48000。 |
|
| 可选 | 50 | 音量,取值范围 [0, 100]。 |
|
| 可选 | 1.0 | 语速,取值范围 [0.5, 2.0]。 |
|
| 可选 | 32 | 音频码率(kbps),取值范围 [6, 510];仅在 |
|
| 可选 | 1.0 | 音调,取值范围 [0.5, 2.0]。 |
|
| 可选 | — | 是否启用 SSML。模型、音色和接口限制请参见使用限制。 |
|
| 可选 |
| 是否返回字级别时间戳,仅用于流式输出。支持 cosyvoice-v3.5-plus、cosyvoice-v3.5-flash、cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2 的复刻音色,以及音色列表中标记支持的系统音色。其他模型的复刻音色不支持。 |
|
| 可选 | 0 | 随机种子,取值范围 [0, 65535]。模型版本、文本、音色和其他参数相同时,使用相同 seed 可复现相同合成结果。 |
|
| 可选 | — | 合成目标语言,当前仅处理数组的第一个元素。此参数与复刻样本的源语言无关。数字、缩写、符号或小语种发音不符合预期时可设置,语言代码见下方列表。复刻源语言参见声音复刻 API。 |
|
| 可选 | — | 控制方言、情感或角色等合成效果的指令。适用模型、音色与写法参见指令控制。 |
|
| 可选 |
| 是否在 WAV、MP3、Opus 音频中嵌入 AIGC 隐性标识。 仅 cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2 支持。 |
|
| 可选 | 阿里云 UID | 隐性标识的 仅 cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2 支持。 |
|
| 可选 | 本次请求的 Request ID | 隐性标识的 仅 cosyvoice-v3-flash、cosyvoice-v3-plus、cosyvoice-v2 支持。 |
|
| 可选 | — | 文本热修复。 cosyvoice-v2 不支持。 |
|
| 可选 |
| 是否在合成前过滤 Markdown 标记。仅 cosyvoice-v3-flash 的复刻音色支持。 |
语言编码
zh:中文en:英语fr:法语de:德语ja:日语ko:韩语ru:俄语pt:葡萄牙语th:泰语id:印尼语vi:越南语es:西班牙语it:意大利语ms:马来西亚语fil:菲律宾语ar:阿拉伯语
文本热修复配置示例:
{
"hot_fix": {
"pronunciation": [
{
"天气": "tian1 qi4"
}
],
"replace": [
{
"今天": "金天"
}
]
}
}
返回体
| 参数 | 类型 | 说明 |
|---|---|---|
|
| 本次请求的唯一标识。 |
|
| 模型输出对象。 |
|
| 任务停止原因。 |
|
| 仅流式输出返回。 |
|
| 用户输入文本切分后的句子内容;最后一句可能没有此字段。 |
|
| 句子信息。 |
|
| 句子编号,从 0 开始。 |
|
| 句子中的字及其时间戳信息。 |
|
| 字。 |
|
| 字在句子中的开始位置,从 0 开始。 |
|
| 字在句子中的结束位置,从 1 开始。 |
|
| 字对应音频的开始时间戳(毫秒)。 |
|
| 字对应音频的结束时间戳(毫秒)。 |
|
| 合成音频对象。 |
|
| 流式输出的 Base64 音频块;非流式输出时为空。 |
|
| 完整音频文件的 URL,有效期 24 小时。 |
|
| 合成音频的标识。 |
|
|
|
|
| 用量信息。 |
|
| 累计计费字符数。 |
非流式
{
"output": {
"audio": {
"data": "",
"id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"expires_at": 1792079570,
"url": "https://example.com/output.wav"
},
"finish_reason": "stop"
},
"usage": {
"characters": 27
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
流式
中间结果:
{
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"output": {
"finish_reason": null,
"type": "sentence-begin",
"original_text": "我家的后面有一个很大的花园。",
"sentence": {
"index": 0,
"words": []
},
"audio": {
"data": "",
"id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"expires_at": 1792079570
}
}
}
最终结果:
{
"output": {
"audio": {
"data": "",
"id": "audio_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"expires_at": 1792079570,
"url": "https://example.com/output.wav"
},
"finish_reason": "stop"
},
"usage": {
"characters": 27
},
"request_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}