{"openapi":"3.1.0","info":{"title":"StableVoice","description":"Pay-per-request text-to-speech on Modal. StableVoice serves the Chatterbox family of open TTS models with bundled voices, optional custom voice references, mp3/wav output, and StableUpload storage slots.","version":"0.1.0","x-guidance":"# StableVoice API\n\nBase URL: `https://stablevoice.dev`\n\nText-to-speech as an x402/MPP API. StableVoice runs open Chatterbox-family TTS models on Modal and writes generated audio to a StableUpload output slot.\n\n## Models\n\n- `chatterbox-turbo` — default, fastest, English, supports paralinguistic tags like `[laugh]`, `[chuckle]`, `[sigh]`, `[gasp]`, `[cough]`.\n- `chatterbox` — English, more expressive controls: `exaggeration`, `cfgWeight`, `temperature`, `topP`, `minP`, `repetitionPenalty`.\n- `chatterbox-multilingual` — 23 languages: ar, da, de, el, en, es, fi, fr, he, hi, it, ja, ko, ms, nl, no, pl, pt, ru, sv, sw, tr, zh.\n\nVoice selection guide:\nAaron: grounded for product narration; Abigail: bright for onboarding; Anaya: crisp for announcements; Andy: casual for demos; Archer: confident for trailers; Brian: steady for tutorials; Chloe: light for tips; Dylan: relaxed for podcasts; Emmanuel: polished for education; Ethan: upbeat for walkthroughs; Evelyn: expressive for storytelling; Gavin: bold for ads; Gordon: measured for training; Ivan: precise for technical explainers; Laura: clear for support; Lucy: balanced for default assistant; Madison: polished for promos; Marisol: warm for travel; Meera: thoughtful for long-form narration; Walter: classic for announcements\n\nCall `GET /api/voices` with SIWX for full `voiceGuide` descriptions, traits, and use cases. Use `referenceAudioUrl` instead of `voice` only when you have a rights-cleared custom reference clip.\n\n## Workflow\n\n```\n1. GET  stablevoice.dev /api/voices          # SIWX model + voice guide\n2. Optional: GET /api/voice-samples          # SIWX MP3 previews\n3. POST stableupload.dev /api/upload         # reserve wav/mp3 output slot\n4. POST stablevoice.dev /api/speech          # paid TTS compute\n5. GET  stablevoice.dev /api/jobs/{jobId}    # SIWX poll every 2-5s\n```\n\nReserve the StableUpload filename with the same extension as `format`. Keep `uploadUrl` or `postUrl/postFields` plus `publicUrl`; pass those as `output`.\n\n## Endpoints\n\n- `GET /api/voices` — SIWX model catalog, bundled voices, `voiceGuide`, formats, tags, pricing notes.\n- `GET /api/voice-samples` — SIWX sample catalog with descriptions, traits, sample text, and absolute MP3 URLs.\n- `POST /api/speech` — paid TTS job. Body: `text` (1-2500), `model`, `voice`, `language`, `format`, `output`, optional `referenceAudioUrl`, `options`, `clientRequestId`.\n- `GET /api/jobs/{jobId}` — SIWX status. When complete, read `result.outputs.audio.publicUrl`.\n- `GET /api/jobs?cursor=...&limit=50` — SIWX job list.\n- `DELETE /api/jobs/{jobId}` — SIWX soft-delete from the job list; StableUpload object expiration is separate.\n\nFor custom voice cloning, upload a clear 5-15 second reference clip to StableUpload and pass its `publicUrl` as `referenceAudioUrl`.\n\nPricing starts at $0.02. Formula: max($0.02, estimatedGenerateSeconds * ($0.000306 A10 GPU + 4 CPU cores + 16 GiB memory) * 3.5).\n","guidance":"# StableVoice API\n\nBase URL: `https://stablevoice.dev`\n\nText-to-speech as an x402/MPP API. StableVoice runs open Chatterbox-family TTS models on Modal and writes generated audio to a StableUpload output slot.\n\n## Models\n\n- `chatterbox-turbo` — default, fastest, English, supports paralinguistic tags like `[laugh]`, `[chuckle]`, `[sigh]`, `[gasp]`, `[cough]`.\n- `chatterbox` — English, more expressive controls: `exaggeration`, `cfgWeight`, `temperature`, `topP`, `minP`, `repetitionPenalty`.\n- `chatterbox-multilingual` — 23 languages: ar, da, de, el, en, es, fi, fr, he, hi, it, ja, ko, ms, nl, no, pl, pt, ru, sv, sw, tr, zh.\n\nVoice selection guide:\nAaron: grounded for product narration; Abigail: bright for onboarding; Anaya: crisp for announcements; Andy: casual for demos; Archer: confident for trailers; Brian: steady for tutorials; Chloe: light for tips; Dylan: relaxed for podcasts; Emmanuel: polished for education; Ethan: upbeat for walkthroughs; Evelyn: expressive for storytelling; Gavin: bold for ads; Gordon: measured for training; Ivan: precise for technical explainers; Laura: clear for support; Lucy: balanced for default assistant; Madison: polished for promos; Marisol: warm for travel; Meera: thoughtful for long-form narration; Walter: classic for announcements\n\nCall `GET /api/voices` with SIWX for full `voiceGuide` descriptions, traits, and use cases. Use `referenceAudioUrl` instead of `voice` only when you have a rights-cleared custom reference clip.\n\n## Workflow\n\n```\n1. GET  stablevoice.dev /api/voices          # SIWX model + voice guide\n2. Optional: GET /api/voice-samples          # SIWX MP3 previews\n3. POST stableupload.dev /api/upload         # reserve wav/mp3 output slot\n4. POST stablevoice.dev /api/speech          # paid TTS compute\n5. GET  stablevoice.dev /api/jobs/{jobId}    # SIWX poll every 2-5s\n```\n\nReserve the StableUpload filename with the same extension as `format`. Keep `uploadUrl` or `postUrl/postFields` plus `publicUrl`; pass those as `output`.\n\n## Endpoints\n\n- `GET /api/voices` — SIWX model catalog, bundled voices, `voiceGuide`, formats, tags, pricing notes.\n- `GET /api/voice-samples` — SIWX sample catalog with descriptions, traits, sample text, and absolute MP3 URLs.\n- `POST /api/speech` — paid TTS job. Body: `text` (1-2500), `model`, `voice`, `language`, `format`, `output`, optional `referenceAudioUrl`, `options`, `clientRequestId`.\n- `GET /api/jobs/{jobId}` — SIWX status. When complete, read `result.outputs.audio.publicUrl`.\n- `GET /api/jobs?cursor=...&limit=50` — SIWX job list.\n- `DELETE /api/jobs/{jobId}` — SIWX soft-delete from the job list; StableUpload object expiration is separate.\n\nFor custom voice cloning, upload a clear 5-15 second reference clip to StableUpload and pass its `publicUrl` as `referenceAudioUrl`.\n\nPricing starts at $0.02. Formula: max($0.02, estimatedGenerateSeconds * ($0.000306 A10 GPU + 4 CPU cores + 16 GiB memory) * 3.5).\n","contact":{"name":"Merit Systems","url":"https://stablevoice.dev"}},"servers":[{"url":"https://stablevoice.dev"}],"tags":[{"name":"Jobs"},{"name":"Speech"},{"name":"Voice Samples"},{"name":"Voices"}],"paths":{"/api/speech":{"post":{"operationId":"speech","summary":"Create a paid StableVoice TTS job. Reserve an output slot on stableupload.dev first, then pass that slot as output. Poll /api/jobs/{jobId} until result.outputs.audio.publicUrl is ready.","tags":["Speech"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","min":"0.02","max":"1.00"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c0000000000000000000000000000000000001"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"default":"stablevoice-speech","type":"string","const":"stablevoice-speech"},"text":{"type":"string","minLength":1,"maxLength":2500,"description":"Text to synthesize, max 2500 characters."},"model":{"default":"chatterbox-turbo","description":"Self-hosted Modal model. chatterbox-turbo is fastest; chatterbox adds expressive controls; chatterbox-multilingual supports 23 languages.","type":"string","enum":["chatterbox-turbo","chatterbox","chatterbox-multilingual"]},"voice":{"default":"Lucy","description":"Bundled reference voice. Ignored only when referenceAudioUrl is supplied.","type":"string","enum":["Aaron","Abigail","Anaya","Andy","Archer","Brian","Chloe","Dylan","Emmanuel","Ethan","Evelyn","Gavin","Gordon","Ivan","Laura","Lucy","Madison","Marisol","Meera","Walter"]},"language":{"default":"en","description":"Language ID. Required for chatterbox-multilingual.","type":"string","enum":["ar","da","de","el","en","es","fi","fr","he","hi","it","ja","ko","ms","nl","no","pl","pt","ru","sv","sw","tr","zh"]},"referenceAudioUrl":{"description":"Optional StableUpload URL for a custom voice reference. Use a clear 5-15s WAV/MP3 clip you have rights to use.","type":"string","format":"uri"},"format":{"default":"wav","type":"string","enum":["wav","mp3"]},"output":{"type":"object","properties":{"publicUrl":{"type":"string","format":"uri","description":"StableUpload public URL where the generated audio will land."},"uploadUrl":{"type":"string","format":"uri"},"postUrl":{"type":"string","format":"uri"},"postFields":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["publicUrl"],"description":"Reserved StableUpload output slot for the generated audio."},"options":{"type":"object","properties":{"temperature":{"default":0.8,"type":"number","minimum":0.05,"maximum":2},"topP":{"default":0.95,"type":"number","minimum":0.05,"maximum":1},"topK":{"default":1000,"type":"integer","minimum":1,"maximum":1000},"minP":{"default":0.05,"type":"number","minimum":0,"maximum":0.5},"repetitionPenalty":{"default":1.2,"type":"number","minimum":1,"maximum":3},"exaggeration":{"default":0.5,"type":"number","minimum":0,"maximum":1.5},"cfgWeight":{"default":0.5,"type":"number","minimum":0,"maximum":1.5},"normalizeReferenceLoudness":{"default":true,"type":"boolean"}}},"clientRequestId":{"type":"string","minLength":1,"maxLength":128}},"required":["text","output"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","enum":["pending","queued","processing"]},"type":{"type":"string","const":"stablevoice-speech"},"price":{"type":"string"},"deduplicated":{"type":"boolean"}},"required":["jobId","status","type","price"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/voices":{"get":{"operationId":"voices","summary":"SIWX StableVoice model and voice catalog, including traits and suggested use cases for every bundled voice.","tags":["Voices"],"security":[{"siwx":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["chatterbox-turbo","chatterbox","chatterbox-multilingual"]},"label":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}},"defaultLanguage":{"type":"string"},"defaultVoice":{"type":"string"},"description":{"type":"string"},"options":{"type":"array","items":{"type":"string"}}},"required":["id","label","languages","defaultLanguage","defaultVoice","description","options"],"additionalProperties":false}},"voices":{"type":"array","items":{"type":"string"}},"voiceGuide":{"type":"array","items":{"type":"object","properties":{"voice":{"type":"string","enum":["Aaron","Abigail","Anaya","Andy","Archer","Brian","Chloe","Dylan","Emmanuel","Ethan","Evelyn","Gavin","Gordon","Ivan","Laura","Lucy","Madison","Marisol","Meera","Walter"]},"description":{"type":"string"},"traits":{"type":"array","items":{"type":"string"}},"bestFor":{"type":"array","items":{"type":"string"}}},"required":["voice","description","traits","bestFor"],"additionalProperties":false}},"outputFormats":{"type":"array","items":{"type":"string","enum":["wav","mp3"]}},"paralinguisticTags":{"type":"array","items":{"type":"string","enum":["[laugh]","[chuckle]","[sigh]","[gasp]","[cough]"]}},"pricing":{"type":"object","properties":{"minimum":{"type":"string"},"formula":{"type":"string"}},"required":["minimum","formula"],"additionalProperties":false}},"required":["models","voices","voiceGuide","outputFormats","paralinguisticTags","pricing"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"}}}},"/api/jobs":{"get":{"operationId":"jobs","summary":"List StableVoice jobs for the authenticated wallet","tags":["Jobs"],"security":[{"siwx":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"stablevoice-speech"},"status":{"type":"string","enum":["pending","queued","processing","complete","failed"]},"progress":{"type":"integer","minimum":0,"maximum":100},"input":{"type":"object","properties":{"type":{"default":"stablevoice-speech","type":"string","const":"stablevoice-speech"},"text":{"type":"string","minLength":1,"maxLength":2500,"description":"Text to synthesize, max 2500 characters."},"model":{"default":"chatterbox-turbo","description":"Self-hosted Modal model. chatterbox-turbo is fastest; chatterbox adds expressive controls; chatterbox-multilingual supports 23 languages.","type":"string","enum":["chatterbox-turbo","chatterbox","chatterbox-multilingual"]},"voice":{"default":"Lucy","description":"Bundled reference voice. Ignored only when referenceAudioUrl is supplied.","type":"string","enum":["Aaron","Abigail","Anaya","Andy","Archer","Brian","Chloe","Dylan","Emmanuel","Ethan","Evelyn","Gavin","Gordon","Ivan","Laura","Lucy","Madison","Marisol","Meera","Walter"]},"language":{"default":"en","description":"Language ID. Required for chatterbox-multilingual.","type":"string","enum":["ar","da","de","el","en","es","fi","fr","he","hi","it","ja","ko","ms","nl","no","pl","pt","ru","sv","sw","tr","zh"]},"referenceAudioUrl":{"description":"Optional StableUpload URL for a custom voice reference. Use a clear 5-15s WAV/MP3 clip you have rights to use.","type":"string","format":"uri"},"format":{"default":"wav","type":"string","enum":["wav","mp3"]},"output":{"type":"object","properties":{"publicUrl":{"type":"string","format":"uri","description":"StableUpload public URL where the generated audio will land."},"uploadUrl":{"type":"string","format":"uri"},"postUrl":{"type":"string","format":"uri"},"postFields":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["publicUrl"],"additionalProperties":false,"description":"Reserved StableUpload output slot for the generated audio."},"options":{"type":"object","properties":{"temperature":{"default":0.8,"type":"number","minimum":0.05,"maximum":2},"topP":{"default":0.95,"type":"number","minimum":0.05,"maximum":1},"topK":{"default":1000,"type":"integer","minimum":1,"maximum":1000},"minP":{"default":0.05,"type":"number","minimum":0,"maximum":0.5},"repetitionPenalty":{"default":1.2,"type":"number","minimum":1,"maximum":3},"exaggeration":{"default":0.5,"type":"number","minimum":0,"maximum":1.5},"cfgWeight":{"default":0.5,"type":"number","minimum":0,"maximum":1.5},"normalizeReferenceLoudness":{"default":true,"type":"boolean"}},"required":["temperature","topP","topK","minP","repetitionPenalty","exaggeration","cfgWeight","normalizeReferenceLoudness"],"additionalProperties":false},"clientRequestId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","text","model","voice","language","format","output"],"additionalProperties":false},"result":{"anyOf":[{"type":"object","properties":{"outputs":{"type":"object","properties":{"audio":{"type":"object","properties":{"publicUrl":{"type":"string","format":"uri"}},"required":["publicUrl"],"additionalProperties":false}},"required":["audio"],"additionalProperties":false},"metrics":{"type":"object","properties":{"t_fetch_reference_s":{"type":"number"},"t_load_s":{"type":"number"},"t_generate_s":{"type":"number"},"t_encode_s":{"type":"number"},"t_upload_s":{"type":"number"},"sample_rate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["t_fetch_reference_s","t_load_s","t_generate_s","t_encode_s","t_upload_s","sample_rate","bytes"],"additionalProperties":false},"provider":{"type":"object","properties":{"name":{"type":"string","const":"modal"},"callId":{"type":"string"},"model":{"type":"string","enum":["chatterbox-turbo","chatterbox","chatterbox-multilingual"]},"voice":{"type":"string"},"format":{"type":"string","enum":["wav","mp3"]}},"required":["name","callId","model","voice","format"],"additionalProperties":false}},"required":["outputs","metrics","provider"],"additionalProperties":false},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"type":"object","properties":{"name":{"type":"string","const":"modal"},"requestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}]},"logs":{"type":"array","items":{"type":"string"}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]}},"required":["name","requestId","status","logs","error"],"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","type","status","progress","input","result","error","provider","createdAt","updatedAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["items","nextCursor"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"}}}},"/api/jobs/:jobId":{"get":{"operationId":"jobs_status","summary":"Get a StableVoice job status by ID","tags":["Jobs"],"security":[{"siwx":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"stablevoice-speech"},"status":{"type":"string","enum":["pending","queued","processing","complete","failed"]},"progress":{"type":"integer","minimum":0,"maximum":100},"input":{"type":"object","properties":{"type":{"default":"stablevoice-speech","type":"string","const":"stablevoice-speech"},"text":{"type":"string","minLength":1,"maxLength":2500,"description":"Text to synthesize, max 2500 characters."},"model":{"default":"chatterbox-turbo","description":"Self-hosted Modal model. chatterbox-turbo is fastest; chatterbox adds expressive controls; chatterbox-multilingual supports 23 languages.","type":"string","enum":["chatterbox-turbo","chatterbox","chatterbox-multilingual"]},"voice":{"default":"Lucy","description":"Bundled reference voice. Ignored only when referenceAudioUrl is supplied.","type":"string","enum":["Aaron","Abigail","Anaya","Andy","Archer","Brian","Chloe","Dylan","Emmanuel","Ethan","Evelyn","Gavin","Gordon","Ivan","Laura","Lucy","Madison","Marisol","Meera","Walter"]},"language":{"default":"en","description":"Language ID. Required for chatterbox-multilingual.","type":"string","enum":["ar","da","de","el","en","es","fi","fr","he","hi","it","ja","ko","ms","nl","no","pl","pt","ru","sv","sw","tr","zh"]},"referenceAudioUrl":{"description":"Optional StableUpload URL for a custom voice reference. Use a clear 5-15s WAV/MP3 clip you have rights to use.","type":"string","format":"uri"},"format":{"default":"wav","type":"string","enum":["wav","mp3"]},"output":{"type":"object","properties":{"publicUrl":{"type":"string","format":"uri","description":"StableUpload public URL where the generated audio will land."},"uploadUrl":{"type":"string","format":"uri"},"postUrl":{"type":"string","format":"uri"},"postFields":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["publicUrl"],"additionalProperties":false,"description":"Reserved StableUpload output slot for the generated audio."},"options":{"type":"object","properties":{"temperature":{"default":0.8,"type":"number","minimum":0.05,"maximum":2},"topP":{"default":0.95,"type":"number","minimum":0.05,"maximum":1},"topK":{"default":1000,"type":"integer","minimum":1,"maximum":1000},"minP":{"default":0.05,"type":"number","minimum":0,"maximum":0.5},"repetitionPenalty":{"default":1.2,"type":"number","minimum":1,"maximum":3},"exaggeration":{"default":0.5,"type":"number","minimum":0,"maximum":1.5},"cfgWeight":{"default":0.5,"type":"number","minimum":0,"maximum":1.5},"normalizeReferenceLoudness":{"default":true,"type":"boolean"}},"required":["temperature","topP","topK","minP","repetitionPenalty","exaggeration","cfgWeight","normalizeReferenceLoudness"],"additionalProperties":false},"clientRequestId":{"type":"string","minLength":1,"maxLength":128}},"required":["type","text","model","voice","language","format","output"],"additionalProperties":false},"result":{"anyOf":[{"type":"object","properties":{"outputs":{"type":"object","properties":{"audio":{"type":"object","properties":{"publicUrl":{"type":"string","format":"uri"}},"required":["publicUrl"],"additionalProperties":false}},"required":["audio"],"additionalProperties":false},"metrics":{"type":"object","properties":{"t_fetch_reference_s":{"type":"number"},"t_load_s":{"type":"number"},"t_generate_s":{"type":"number"},"t_encode_s":{"type":"number"},"t_upload_s":{"type":"number"},"sample_rate":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"bytes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["t_fetch_reference_s","t_load_s","t_generate_s","t_encode_s","t_upload_s","sample_rate","bytes"],"additionalProperties":false},"provider":{"type":"object","properties":{"name":{"type":"string","const":"modal"},"callId":{"type":"string"},"model":{"type":"string","enum":["chatterbox-turbo","chatterbox","chatterbox-multilingual"]},"voice":{"type":"string"},"format":{"type":"string","enum":["wav","mp3"]}},"required":["name","callId","model","voice","format"],"additionalProperties":false}},"required":["outputs","metrics","provider"],"additionalProperties":false},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"type":"object","properties":{"name":{"type":"string","const":"modal"},"requestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}]},"logs":{"type":"array","items":{"type":"string"}},"error":{"anyOf":[{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}]}},"required":["name","requestId","status","logs","error"],"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","type","status","progress","input","result","error","provider","createdAt","updatedAt"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"}}},"delete":{"operationId":"jobs_delete","summary":"Soft-delete a finished StableVoice job","tags":["Jobs"],"security":[{"siwx":[]}],"responses":{"200":{"description":"Successful response"},"402":{"description":"Authentication Required"}}}},"/api/voice-samples":{"get":{"operationId":"voice-samples","summary":"List static StableVoice MP3 previews for every bundled voice. Use this before choosing a bundled voice for /api/speech.","tags":["Voice Samples"],"security":[{"siwx":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":9007199254740991},"items":{"type":"array","items":{"type":"object","properties":{"voice":{"type":"string","enum":["Aaron","Abigail","Anaya","Andy","Archer","Brian","Chloe","Dylan","Emmanuel","Ethan","Evelyn","Gavin","Gordon","Ivan","Laura","Lucy","Madison","Marisol","Meera","Walter"]},"slug":{"type":"string"},"description":{"type":"string"},"traits":{"type":"array","items":{"type":"string"}},"bestFor":{"type":"array","items":{"type":"string"}},"text":{"type":"string"},"model":{"type":"string","const":"chatterbox-turbo"},"language":{"type":"string","const":"en"},"format":{"type":"string","const":"mp3"},"audioUrl":{"type":"string","format":"uri"}},"required":["voice","slug","description","traits","bestFor","text","model","language","format","audioUrl"],"additionalProperties":false}},"note":{"type":"string"}},"required":["count","items","note"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"}}}}},"components":{"securitySchemes":{"siwx":{"type":"apiKey","in":"header","name":"SIGN-IN-WITH-X"}}}}