音频
POST
/v1/audio/speech使用统一接口完成语音合成和音频转录。
语音合成可能返回二进制音频,也可能返回 JSON 异步任务;音频转录使用 multipart/form-data。语音合成请求必须在 input 和 prompt 中选择一个,不能同时传入。
查看包含同步/异步 TTS、保存文件、转录和错误处理的完整音频指南
语音合成字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 从 /v1/models 获取的语音合成模型 ID。 |
input | string | 否 | 要转换为语音的文本;与 prompt 二选一。 |
prompt | string | 否 | 音频生成或音乐模型使用的提示词;与 input 二选一。 |
voice | string | 否 | 模型支持的音色 ID;音乐和通用音频模型通常不需要。 |
response_format | string | 否 | 期望的音频格式;支持值由模型决定。 |
instructions | string | 否 | 说话方式或语气指令,仅在模型支持时生效。 |
speed | number | 否 | 兼容 TTS 的语速参数,仅在模型支持时生效。 |
audio_references | string[] | 否 | Seed Audio 的参考音频 URL;最多三个。 |
image_urls | string[] | 否 | Seed Audio 的参考图 URL;与 audio_references 互斥。 |
format | string | 否 | Seed Audio 输出格式,例如 wav、mp3。 |
sample_rate | integer | 否 | Seed Audio 采样率,例如 24000 或 48000。 |
speech_rate | number | 否 | Seed Audio 语速,范围由模型限制。 |
loudness_rate | number | 否 | Seed Audio 响度调整。 |
pitch_rate | number | 否 | Seed Audio 音高调整。 |
custom_mode | boolean | 否 | Suno 自定义模式开关。 |
instrumental | boolean | 否 | Suno 是否生成纯音乐。 |
style | string | 否 | Suno 风格描述;custom_mode=true 时必填。 |
title | string | 否 | Suno 曲目标题;custom_mode=true 时必填。 |
duration | integer | 否 | 仅在 Suno v5.5/v6 且 custom_mode=true 时转交上游;是否接受由模型决定。 |
vocal_gender | string | 否 | Suno 人声性别偏好。 |
negative_tags | string | 否 | Suno 不希望出现的标签。 |
style_weight | number | 否 | Suno 风格权重。 |
weirdness_constraint | number | 否 | Suno 风格偏离约束。 |
audio_weight | number | 否 | Suno 参考音频权重。 |
persona_id | string | 否 | Suno Persona ID。 |
persona_model | string | 否 | Suno Persona 使用的模型。 |
语音合成示例
Suno · JSON
curl https://api.noxgate.net/v1/audio/speech \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{"model":"suno-v5.5","prompt":"Bright adventure game music","custom_mode":false,"instrumental":true}'Seed Audio · JSON
curl https://api.noxgate.net/v1/audio/speech \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{"model":"doubao-seed-audio-1-0","prompt":"Gentle rain falling in a forest"}'curl · binary output
curl https://api.noxgate.net/v1/audio/speech \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{"model":"YOUR_MODEL_ID","input":"Hello from NoxGate","voice":"YOUR_VOICE_ID"}' \
-o speech.mp3语音合成响应
先检查 Content-Type。音频类型响应直接写入文件;application/json 响应按任务对象解析,保存 id 并轮询查询端点。
查询异步语音任务
GET
/v1/audio/speech/:task_id对 JSON 创建响应中的 id 进行轮询。succeeded、failed 和 canceled 是终态;客户端必须设置最大等待时间。
curl
curl "https://api.noxgate.net/v1/audio/speech/audio_task_example" \
-H "Authorization: Bearer sk-your-api-key"语音转录
POST
/v1/audio/transcriptions上传音频文件并返回转录结果。
语音转录字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 从 /v1/models 获取的语音识别模型 ID。 |
file | file | 是 | multipart 上传的音频文件。 |
其他表单字段 | string | 否 | 其他文本表单字段会转交 Provider;仅使用所选模型明确支持的字段。 |
语音转录示例
curl · multipart
curl https://api.noxgate.net/v1/audio/transcriptions \
-H "Authorization: Bearer sk-your-api-key" \
-F "model=YOUR_MODEL_ID" \
-F "file=@./audio.mp3"Python · requests
import requests
with open("audio.mp3", "rb") as audio:
response = requests.post(
"https://api.noxgate.net/v1/audio/transcriptions",
headers={"Authorization": "Bearer sk-your-api-key"},
data={"model": "YOUR_MODEL_ID"},
files={"file": ("audio.mp3", audio, "audio/mpeg")},
)
print(response.json())Node.js · fetch
import { readFile } from "node:fs/promises";
const form = new FormData();
form.append("model", "YOUR_MODEL_ID");
form.append("file", new Blob([await readFile("audio.mp3")], { type: "audio/mpeg" }), "audio.mp3");
const response = await fetch("https://api.noxgate.net/v1/audio/transcriptions", {
method: "POST",
headers: { Authorization: "Bearer sk-your-api-key" },
body: form,
});
console.log(await response.json());语音转录响应
网关保留 Provider 的转录响应。JSON 路由通常返回 text 等字段,具体结构取决于所选模型。
JSON
{"text":"Hello from NoxGate"}使用提示
- 参数表是多个模型族的字段合集,不需要全部传入。Suno 和 Seed Audio 使用 prompt 且不需要 voice;传统 TTS 使用 input,并按模型要求提供 voice。
- 音色、格式、文件类型和其他可选参数均受所选模型能力限制。
- 语音合成示例使用 -o 保存二进制响应,不要按 JSON 解析。
- 转录请求必须使用 multipart/form-data,不能发送 JSON 文件路径。