## Basic tool info Model name: elevenlabs/eleven v4 turbo dialogue Model description: Turn a scripted conversation into expressive speech with ElevenLabs Eleven v4 Turbo. Provide a multi-voice dialogue JSON and get a single MP3 scene. Model cover: https://cdn.wiro.ai/uploads/models/elevenlabs-eleven-v4-turbo-dialogue-cover.webp Model categories: - tool - partner - elevenlabs - text-to-speech - quick-showcase - nogpu-pipeline Model tags: - elevenlabs - text-to-speech Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/elevenlabs/eleven-v4-turbo-dialogue Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: prompt label: prompt help: Required. A JSON array of {"voice": "...", "text": "..."} objects, one per turn. Voice is one of: adam, alice, bella, bill, brian, callum, charlie, chris, daniel, eric, george, harry, jessica, laura, liam, lily, matilda, river, roger, sarah, will (or a voice id). Up to 2,000 characters of text and 10 different voices. Supports audio tags like [whispering], [laughing], [excited]. type: textarea default: [{"voice": "matilda", "text": "[curious] Did you water the plants?"}, {"voice": "daniel", "text": "[nervous] Define water... [laughing] okay, no."}] - name: outputFormat label: outputFormat help: Required. type: select default: mp3_44100_128 options: - value: "mp3_22050_32" label: mp3_22050_32 - value: "mp3_44100_32" label: mp3_44100_32 - value: "mp3_44100_64" label: mp3_44100_64 - value: "mp3_44100_96" label: mp3_44100_96 - value: "mp3_44100_128" label: mp3_44100_128 - name: languageCode label: Language help: Optional. Auto lets the model detect the language from the text. Choosing one makes it speak and read numbers and dates in that language. type: select default: auto options: - value: "auto" label: Auto - value: "af" label: Afrikaans - value: "am" label: Amharic - value: "ar" label: Arabic - value: "hy" label: Armenian - value: "as" label: Assamese - value: "az" label: Azerbaijani - value: "be" label: Belarusian - value: "bn" label: Bengali - value: "bs" label: Bosnian - value: "bg" label: Bulgarian - value: "my" label: Burmese - value: "ca" label: Catalan - value: "zh" label: Chinese (Mandarin) - value: "hr" label: Croatian - value: "cs" label: Czech - value: "da" label: Danish - value: "nl" label: Dutch - value: "en" label: English - value: "et" label: Estonian - value: "fi" label: Finnish - value: "fr" label: French - value: "ff" label: Fula - value: "gl" label: Galician - value: "ka" label: Georgian - value: "de" label: German - value: "el" label: Greek - value: "gu" label: Gujarati - value: "ha" label: Hausa - value: "he" label: Hebrew - value: "hi" label: Hindi - value: "hu" label: Hungarian - value: "is" label: Icelandic - value: "id" label: Indonesian - value: "it" label: Italian - value: "ja" label: Japanese - value: "jv" label: Javanese - value: "kn" label: Kannada - value: "kk" label: Kazakh - value: "ko" label: Korean - value: "ky" label: Kyrgyz - value: "lo" label: Lao - value: "lv" label: Latvian - value: "ln" label: Lingala - value: "lt" label: Lithuanian - value: "lg" label: Luganda - value: "lb" label: Luxembourgish - value: "mk" label: Macedonian - value: "ms" label: Malay - value: "ml" label: Malayalam - value: "mt" label: Maltese - value: "mi" label: Maori - value: "mr" label: Marathi - value: "mn" label: Mongolian - value: "ne" label: Nepali - value: "no" label: Norwegian - value: "oc" label: Occitan - value: "or" label: Odia - value: "ps" label: Pashto - value: "fa" label: Persian - value: "pl" label: Polish - value: "pt" label: Portuguese - value: "pa" label: Punjabi - value: "ro" label: Romanian - value: "ru" label: Russian - value: "sr" label: Serbian - value: "sn" label: Shona - value: "sd" label: Sindhi - value: "sk" label: Slovak - value: "sl" label: Slovenian - value: "so" label: Somali - value: "es" label: Spanish - value: "sw" label: Swahili - value: "sv" label: Swedish - value: "tg" label: Tajik - value: "ta" label: Tamil - value: "te" label: Telugu - value: "th" label: Thai - value: "tr" label: Turkish - value: "uk" label: Ukrainian - value: "ur" label: Urdu - value: "uz" label: Uzbek - value: "vi" label: Vietnamese - value: "cy" label: Welsh - value: "wo" label: Wolof - value: "zu" label: Zulu - name: timestamps label: Timestamps help: Optional. When true, a JSON file is returned along with the audio, with the start and end time of every word, which voice speaks it, and the name of each voice. type: select default: false options: - value: "false" label: False - value: "true" label: True - name: applyTextNormalization label: Text Normalization help: Optional. Spells out numbers, dates and abbreviations before speaking them, e.g. "3/4" becomes "three quarters". Auto lets the model decide. type: select default: auto options: - value: "auto" label: Auto - value: "on" label: On - value: "off" label: Off - name: stability label: Stability help: Optional. Controls how consistent the delivery is. Lower values are more expressive, higher values keep a steadier delivery. type: float default: 0.5 - name: similarityBoost label: Similarity help: Optional. How closely the output follows the reference voice. Higher values match it more closely but can sound less natural. type: float default: 0.75 - name: seed label: Seed help: Optional. The same seed with the same settings gives a near identical result. Leave empty for a random result. type: float default: ## Model Parameter Inspires: - prompt: [{"voice": "matilda", "text": "[curious] Did you water the plants?"}, {"voice": "daniel", "text": "[nervous] Define water... [laughing] okay, no."}] - prompt: [{"voice": "chris", "text": "[excited] Guess who got the tickets?"}, {"voice": "laura", "text": "[shouting] No way! [laughing] Front row?"}] - prompt: [{"voice": "bill", "text": "[tired] Is it Monday already?"}, {"voice": "jessica", "text": "[sighs] Sadly, yes. [cheerful] But coffee's ready."}] - prompt: [{"voice": "will", "text": "[whispering] Did you hear that noise?"}, {"voice": "river", "text": "[calm] Relax. [laughing] It's just the fridge."}] ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="{{useSelectedProjectAPIKey}}"; export YOUR_API_SECRET="XXXXXXXXX"; # unix time or any random integer value export NONCE=$(date +%s); # hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}" | awk '{print $NF}')"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/elevenlabs/eleven-v4-turbo-dialogue" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "prompt": "[{\"voice\": \"matilda\", \"text\": \"[curious] Did you water the plants?\"}, {\"voice\": \"daniel\", \"text\": \"[nervous] Define water... [laughing] okay, no.\"}]", "outputFormat": "mp3_44100_128", "languageCode": "auto", "timestamps": "false", "applyTextNormalization": "auto", "stability": "0.5", "similarityBoost": "0.75", "seed": "", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." }'; ``` ## Run Command - Response ```json { "errors": [], "taskid": "2221", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "result": true } ``` ## Get Task Detail - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "2221" }'; ``` ## Get Task Detail - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "tasktoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt" }'; ``` ## Get Task Detail - Response ```json { "total": "1", "errors": [], "tasklist": [ { "id": "2221", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "parameters": {}, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_postprocess_end", "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "totalcost": "0.003510000000", "chargedcost": "0.002808000000", "discountamount": "0.000702000000", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` totalcost is the list price. chargedcost is the amount actually billed after any discount (a store fee is included on store runs); discountamount is the discount. chargedcost is null until the charge is recorded (shortly after task_postprocess_end) and "0" for a failed or cancelled task. ## Kill Task - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "534574" }'; ``` ## Kill Task - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE" }'; ``` ## Kill Task - Response ```json { "errors": [], "tasklist": [ { "id": "534574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Cancel Task - Make HTTP Post Request (For tasks on queue) ```bash curl -X POST "https://api.wiro.ai/v1/Task/Cancel" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "634574" }'; ``` ## Cancel Task - Response ```json { "errors": [], "tasklist": [ { "id": "634574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Task Status Information This section defines the possible task status values returned by the API when polling for task completion. ### Completed Task Statuses (Polling can stop) These indicate that the task has reached a terminal state — either success or failure. Once any of these is received, polling should stop. - task_postprocess_end : Task completed successfully and post-processing is done. - task_cancel : Task was cancelled by the user or system. ### Running Task Statuses (Continue polling) These statuses indicate that the task is still in progress. Polling should continue if one of these is returned. - task_queue : Task is waiting in the queue. - task_accept : Task has been accepted for processing. - task_assign : Task is being assigned to a worker. - task_preprocess_start : Preprocessing is starting. - task_preprocess_end : Preprocessing is complete. - task_start : Task execution has started. - task_output : Output is being generated.