{"openapi":"3.1.0","info":{"title":"Delia TTS API","version":"1.0.0","description":"Convert text to MP3 speech using Microsoft Edge TTS."},"servers":[{"url":"https://tts.delia.love"}],"paths":{"/api/tts":{"post":{"summary":"Synthesize text to MP3","security":[{"ApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":5000,"description":"Plain text to speak. Hard cap 5000 chars, but upstream limits one request to ~10 minutes of audio (~2500 Chinese chars at 1x rate); keep each request under ~2000 Chinese chars / 3000 English words and split longer texts into multiple requests (segments are concatenatable MP3)."},"voice":{"type":"string","default":"zh-CN-XiaoxiaoNeural"},"rate":{"type":"string","default":"+0%"},"pitch":{"type":"string","default":"+0Hz"},"volume":{"type":"string","default":"+0%"}}}}}},"responses":{"200":{"description":"MP3 audio","content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Text too long"},"502":{"description":"Synthesis failed (commonly: text too long, audio exceeds ~10 min upstream limit — split the text)"}}}},"/api/voices":{"get":{"summary":"List available voices","responses":{"200":{"description":"Voice list"}}}}},"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}