音频

POST/v1/audio/speech

使用统一接口完成语音合成和音频转录。

语音合成可能返回二进制音频,也可能返回 JSON 异步任务;音频转录使用 multipart/form-data。语音合成请求必须在 input 和 prompt 中选择一个,不能同时传入。

查看包含同步/异步 TTS、保存文件、转录和错误处理的完整音频指南

语音合成字段

字段类型必填说明
modelstring是从 /v1/models 获取的语音合成模型 ID。
inputstring否要转换为语音的文本;与 prompt 二选一。
promptstring否音频生成或音乐模型使用的提示词;与 input 二选一。
voicestring否模型支持的音色 ID;音乐和通用音频模型通常不需要。
response_formatstring否期望的音频格式;支持值由模型决定。
instructionsstring否说话方式或语气指令,仅在模型支持时生效。
speednumber否兼容 TTS 的语速参数,仅在模型支持时生效。
audio_referencesstring[]否Seed Audio 的参考音频 URL;最多三个。
image_urlsstring[]否Seed Audio 的参考图 URL;与 audio_references 互斥。
formatstring否Seed Audio 输出格式,例如 wav、mp3。
sample_rateinteger否Seed Audio 采样率,例如 24000 或 48000。
speech_ratenumber否Seed Audio 语速,范围由模型限制。
loudness_ratenumber否Seed Audio 响度调整。
pitch_ratenumber否Seed Audio 音高调整。
custom_modeboolean否Suno 自定义模式开关。
instrumentalboolean否Suno 是否生成纯音乐。
stylestring否Suno 风格描述;custom_mode=true 时必填。
titlestring否Suno 曲目标题;custom_mode=true 时必填。
durationinteger否仅在 Suno v5.5/v6 且 custom_mode=true 时转交上游;是否接受由模型决定。
vocal_genderstring否Suno 人声性别偏好。
negative_tagsstring否Suno 不希望出现的标签。
style_weightnumber否Suno 风格权重。
weirdness_constraintnumber否Suno 风格偏离约束。
audio_weightnumber否Suno 参考音频权重。
persona_idstring否Suno Persona ID。
persona_modelstring否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

上传音频文件并返回转录结果。

语音转录字段

字段类型必填说明
modelstring是从 /v1/models 获取的语音识别模型 ID。
filefile是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 文件路径。