{"openapi":"3.1.0","info":{"title":"本地语音双引擎管理平台","version":"1.0.0","description":"Agent 自助注册并调用 CosyVoice3(8000)/IndexTTS-2(8001) 语音合成。注册后拿独立 API Key，请求头 X-API-Key 鉴权。"},"servers":[{"url":"https://desktop-gd6ps84.tail9020ed.ts.net"}],"paths":{"/health":{"get":{"summary":"网关与双引擎健康","responses":{"200":{"description":"ok"}}}},"/api/register":{"post":{"summary":"注册新 Agent，返回 agent_id + api_key","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}}},"responses":{"200":{"description":"注册成功，含 agent_id/api_key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResult"}}}},"400":{"description":"参数错误","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/tts":{"post":{"summary":"语音合成（engine: cosyvoice3 | indextts2）","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TTSRequest"}}}},"responses":{"200":{"description":"audio 二进制（wav/pcm16/mp3），含 X-Duration-Sec/X-RTF 等响应头"},"400":{"description":"参数错误","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Key 缺失或无效","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Agent 被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"超过每分钟上限（8 次）","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"引擎未就绪","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/voices":{"get":{"summary":"获取指定引擎音色列表","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"engine","in":"query","schema":{"type":"string","enum":["cosyvoice3","indextts2"]},"description":"引擎，默认 cosyvoice3"}],"responses":{"200":{"description":"音色列表（103）"}}}},"/api/me":{"get":{"summary":"当前 Agent 信息与用量","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Agent 信息"}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"Error":{"type":"object","properties":{"detail":{"type":"string"}}},"RegisterRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Agent 名称（必填）"},"agent_type":{"type":"string","description":"类型/用途"},"org":{"type":"string","description":"所属方"},"contact":{"type":"string","description":"联系方式（可选）"},"purpose":{"type":"string","description":"申请说明"},"apply_note":{"type":"string","description":"期望用途"}}},"RegisterResult":{"type":"object","properties":{"ok":{"type":"boolean"},"agent_id":{"type":"string"},"api_key":{"type":"string","description":"仅此一次返回，请保存"},"created_at":{"type":"string"},"engines":{"type":"array","items":{"type":"string"}},"default_engine":{"type":"string"},"gateway_tts":{"type":"string"},"api_docs":{"type":"string"}}},"TTSRequest":{"type":"object","required":["voice_id","text"],"properties":{"voice_id":{"type":"string","description":"音色 ID，见 /api/voices（v_0001~v_0103）"},"text":{"type":"string","description":"待合成文本"},"format":{"type":"string","enum":["wav","pcm16","mp3"],"default":"wav"},"engine":{"type":"string","enum":["cosyvoice3","indextts2"],"default":"cosyvoice3"},"instruct":{"type":"string","description":"仅 cosyvoice3：语气/风格指令"},"emo_text":{"type":"string","description":"仅 indextts2：情绪描述"},"emo_alpha":{"type":"number","description":"仅 indextts2：情绪强度 0~1","default":0.8}}}}},"security":[{"ApiKeyAuth":[]}]}