Skip to content

Inworld TTS-1.5 Max

Integrate

Model id inworld-tts
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/inworld-tts?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello from Doitong. This is a short test sentence."
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: $0.001 1 API credit Run it on this page

Get API key
Inworld Text to Speech #text-to-speech#inworld#tts

Text-to-speech with a large catalog of named English and other voices and selectable sample rates

Inworld · Audio

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required 50 / 2000

Text for speech synthesis, limited to 2000 characters.

Advanced sample_rate_hertz · voice · enable_safety_checker
sample_rate_hertz default 48000

Output audio's sample rate, measured in Hz.

default Craig (en)

Voice used for speech synthesis.

POST /run/inworld-tts?wait=20 quote → $0.001
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/inworld-tts?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello from Doitong. This is a short test sentence."
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Inworld TTS-1.5 Max

Converts up to 2000 characters of `text` into speech. `voice` selects from 113 named voices, with Craig (en) as the default. `sample_rate_hertz` can be 8000, 16000, 24000, 32000, 40000 or 48000 (default). Returns one audio file.

Parameters

NameType DefaultAllowed Description
textrequired
Typestring
≤ 2,000 characters
Text for speech synthesis, limited to 2000 characters.
voiceoptional
Typeenum
DefaultCraig (en)
Loretta (en)Darlene (en)Marlene (en)Hank (en)Evelyn (en)Celeste (en)Pippa (en)Tessa (en)Liam (en)Callum (en)Hamish (en)Abby (en)Graham (en)Rupert (en)Mortimer (en)Snik (en)
+97 moreAnjali (en)Saanvi (en)Arjun (en)Claire (en)Oliver (en)Simon (en)Elliot (en)James (en)Serena (en)Gareth (en)Vinny (en)Lauren (en)Jessica (en)Ethan (en)Tyler (en)Jason (en)Chloe (en)Veronica (en)Victoria (en)Miranda (en)Sebastian (en)Victor (en)Malcolm (en)Kayla (en)Nate (en)Jake (en)Brian (en)Amina (en)Kelsey (en)Derek (en)Grant (en)Evan (en)Alex (en)Ashley (en)Craig (en)Deborah (en)Dennis (en)Edward (en)Elizabeth (en)Hades (en)Julia (en)Pixie (en)Mark (en)Olivia (en)Priya (en)Ronald (en)Sarah (en)Shaun (en)Theodore (en)Timothy (en)Wendy (en)Dominus (en)Hana (en)Clive (en)Carter (en)Blake (en)Luna (en)Yichen (zh)Xiaoyin (zh)Xinyi (zh)Jing (zh)Erik (nl)Katrien (nl)Lennart (nl)Lore (nl)Alain (fr)Hélène (fr)Mathieu (fr)Étienne (fr)Johanna (de)Josef (de)Gianni (it)Orietta (it)Asuka (ja)Satoshi (ja)Hyunwoo (ko)Minji (ko)Seojun (ko)Yoona (ko)Szymon (pl)Wojciech (pl)Heitor (pt)Maitê (pt)Diego (es)Lupita (es)Miguel (es)Rafael (es)Svetlana (ru)Elena (ru)Dmitry (ru)Nikolai (ru)Riya (hi)Manoj (hi)Yael (he)Oren (he)Nour (ar)Omar (ar)
Voice used for speech synthesis.
sample_rate_hertzoptional
Typeenum
Default48000
80001600024000320004000048000
Output audio's sample rate, measured in Hz.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Screening can be relaxed by setting false, provided the caller is authorized.
required

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "inworld-tts",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 1,
    "usd": "0.001",
    "charged": 1,
    "refunded": 0
  },
  "input": {
    "text": "Hello from Doitong. This is a short test sentence."
  },
  "output": {
    "audio": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
      "content_type": "audio/mpeg",
      "file_name": "0-output.mp3",
      "file_size": 1843200
    }
  },
  "outputs": [
    {
      "type": "audio",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
      "content_type": "audio/mpeg",
      "file_size": 1843200,
      "duration": 12,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
audio
object {url, content_type, file_name, file_size}Audio file produced by generation.

For AI agents: this page as Markdown is at https://doitong.com/en-US/developers/models/inworld-tts.md. All models and guides: https://doitong.com/developers/llms.txt