调用 /v1/audio/speech:model、input 与可选 voice

语音合成接口采用 OpenAI 形态:POST JSON,包含模型、待合成文本和可选参数。音色列表按模型划分——每个 TTS 模型支持自己的音色集,音色不能跨模型混用。省略 voice 时,网关使用该模型文档声明的默认音色。

curl
curl https://modelxing.com/v1/audio/speech \
  -H "Authorization: Bearer $NEXTMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -o speech.wav \
  -d '{
    "model": "qwen3-tts-instruct-flash",
    "input": "今天天气不错,适合出门走走。",
    "voice": "Cherry",
    "response_format": "wav"
  }'
Python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://modelxing.com/v1"
)

with client.audio.speech.with_streaming_response.create(
    model="qwen3-tts-instruct-flash",
    voice="Cherry",
    input="今天天气不错,适合出门走走。",
    response_format="wav",
) as response:
    response.stream_to_file("speech.wav")
model目录中的 TTS 模型 ID(每个家族有自己的音色集)
input待合成文本;须在该音色支持的语言范围内
voice可选;省略时使用模型文档声明的默认音色
response_format可选;支持的取值如 wav、mp3、pcm

机器可读地获取每个模型的音色与默认值

GET /v1/models/{id} 会为 TTS 模型返回 invocation 对象:端点、省略 voice 时生效的默认音色、带标签/语言/能力标记(SSML、instruct、时间戳)的完整精选音色列表、响应格式,以及音色列表的官方出处。模型详情页的音色表同样出自这份契约。

GET /v1/models/qwen3-tts-instruct-flash返回含全部 24 个音色的调用契约
GET /v1/models/cosyvoice-v3-flashCosyVoice 家族:long* 音色 ID,支持方言音色
GET /v1/models/qwen-audio-3.0-tts-flashQwen-Audio 家族:longan* ID,另有 500+ 克隆基础音色

音色错误是自描述的

音色列表仅供参考,可能落后于上游文档,因此未知音色不会在本地被拒——请求照发上游,由上游做最终裁决。上游拒绝某个音色时,错误信息会附上该模型支持的音色列表和模型详情端点,让 agent 不查外部文档也能修正调用。

克隆与描述生成流程替代固定音色列表

部分模型没有固定音色集:cosyvoice-clone-v1 与 qwen3-tts-vc 使用克隆音色,qwen3-tts-vd 根据文本描述生成音色,cosyvoice-v3.5 家族只接受克隆音色(没有系统音色,因此每次调用都必须传 voice)。对这些模型,先通过 POST /v1/audio/assets 创建音色资产,再用返回的 voice id 合成。它们的调用契约描述的是这套流程,而不是音色表。