多人语音生成
多说话人文本转语音(TTSD)。用 speakers 数组声明每个说话人(id + 音色),再用 segments 数组按说话人分句给出台词。音色用 voice_id 指定,取值见 查询音色列表。
认证
在请求头中加入 Authorization: Bearer <API_KEY> 完成鉴权,密钥可在控制台「API 密钥」页生成。
curl -X POST https://api.mosi.cn/v1/audio/speech/speakers \
-H "Authorization: Bearer $MOSS_API_KEY"
支持模型
| 字段 | 允许值 |
|---|---|
| model |
|
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 是 | 完整模型 ID。常规调用使用 |
| speakers | array | 是 | 说话人配置数组,声明每个说话人及其音色,不能为空。 |
| speakers[].id | string | 是 | 说话人标识,供 |
| speakers[].voice_id | string | 是 | 说话人音色 ID,可从查询音色列表或创建音色接口获得。 |
| segments | array | 是 | 分句数组,按说话人给出台词,不能为空。 |
| segments[].speaker | string | 是 | 说话人标识,必须匹配 |
| segments[].text | string | 是 | 该句台词文本。 |
| response_format | string | 否 | 同步请求的音频格式,例如 |
| delivery_method | string | 否 |
|
| async | boolean | 否 | 设为 |
| webhook_url | string | 否 | 异步任务完成后回调的 HTTPS URL。 |
| aigc_metadata | object | 否 | 控制是否在生成的音频文件中写入 AIGC 隐式标识,默认不写入。该字段仅影响最终音频文件的元数据,不影响语音合成内容。 |
| aigc_metadata.enabled | boolean | 否 | 是否写入 AIGC 隐式标识,默认 |
| aigc_metadata.content_propagator | string | 否 | 内容传播服务提供者的名称或编码。 |
| aigc_metadata.propagate_id | string | 否 | 内容传播编号,用于标识本次内容传播。 |
请求示例
curl https://api.mosi.cn/v1/audio/speech/speakers \
-H "Authorization: Bearer $MOSS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "moss-ttsd-1.0",
"speakers": [
{ "id": "A", "voice_id": "<speaker_a_voice_id>" },
{ "id": "B", "voice_id": "<speaker_b_voice_id>" }
],
"segments": [
{ "speaker": "A", "text": "今天进度如何?" },
{ "speaker": "B", "text": "已经完成接口联调。" }
],
"delivery_method": "url",
"response_format": "mp3",
"aigc_metadata": {
"enabled": true,
"content_propagator": "<content_propagator>",
"propagate_id": "<propagate_id>"
}
}'
返回方式
| 请求方式 | 返回内容 |
|---|---|
默认或 delivery_method=audio | 直接返回音频二进制,Content-Type 随 response_format 变化 |
delivery_method=url | 返回 JSON,包含音频结果 URL |
async=true | 返回异步任务对象;任务结果通过 GET /v1/audio/tasks/{task_id} 查询 |
同步 URL 响应字段
delivery_method=url 时返回 JSON(含结果 URL):
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
| id | string | 是 | 任务/结果 ID。同步 URL JSON 响应统一使用 |
| object | string | 是 | 固定为 |
| status | string | 是 | 任务状态,例如 |
| url | string | 是 | 音频结果 URL。 |
| response_format | string | 是 | 实际输出音频格式,例如 |
| content_type | string | 是 | 音频 MIME 类型,例如 |
| created_at | integer | 是 | 创建时间,Unix 时间戳,单位为秒。 |
异步创建响应字段
async=true 时立即返回:
| 字段 | 类型 | 必返 | 说明 |
|---|---|---|---|
| id | string | 是 | 任务 ID。 |
| task_id | string | 是 | 任务查询 ID,通常与 |
| object | string | 是 | 固定为 |
| status | string | 是 | 初始状态,例如 |
| retry_after | integer | 否 | 建议轮询间隔,单位为秒。 |
| created_at | integer | 是 | 创建时间,Unix 时间戳,单位为秒。 |
| updated_at | integer | 否 | 更新时间,Unix 时间戳,单位为秒。 |
响应示例
{
"id": "task_abc123",
"object": "audio.speech",
"status": "SUCCESS",
"url": "https://cdn.example.com/out.mp3",
"response_format": "mp3",
"content_type": "audio/mpeg",
"created_at": 1710000000
}