Inworld Realtime TTS-2

Inworld Realtime TTS-2 is a conversational text-to-speech model built for realtime voice interaction rather than static narration. It supports free-form voice direction, carries tone and pacing forward from prior audio in a session, preserves one voice identity across 100+ languages, and is designed for expressive, low-latency speech in assistants, characters, support agents, and interactive products.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
Italian Heritage Podcast Intro
Benvenuti a Tracce di Restauro, il podcast che entra nei laboratori dove rinascono gli strumenti scientifici. Oggi, un astrolabio del 1683 torna a misurare il cielo.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: 'Benvenuti a Tracce di Restauro, il podcast che entra nei laboratori dove rinascono gli strumenti scientifici. Oggi, un astrolabio del 1683 torna a misurare il cielo.',
voice: 'Orietta',
language: 'it'
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "Benvenuti a Tracce di Restauro, il podcast che entra nei laboratori dove rinascono gli strumenti scientifici. Oggi, un astrolabio del 1683 torna a misurare il cielo.",
"voice": "Orietta",
"language": "it"
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "36fc3509-2caf-4de0-b0fd-0af342ee1fd6",
"model": "inworld:tts@2",
"speech": {
"text": "Benvenuti a Tracce di Restauro, il podcast che entra nei laboratori dove rinascono gli strumenti scientifici. Oggi, un astrolabio del 1683 torna a misurare il cielo.",
"voice": "Orietta",
"language": "it"
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text="Benvenuti a Tracce di Restauro, il podcast che entra nei laboratori dove rinascono gli strumenti scientifici. Oggi, un astrolabio del 1683 torna a misurare il cielo." \
speech.voice=Orietta \
speech.language=it \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "36fc3509-2caf-4de0-b0fd-0af342ee1fd6",
"model": "inworld:tts@2",
"speech": {
"text": "Benvenuti a Tracce di Restauro, il podcast che entra nei laboratori dove rinascono gli strumenti scientifici. Oggi, un astrolabio del 1683 torna a misurare il cielo.",
"voice": "Orietta",
"language": "it"
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "36fc3509-2caf-4de0-b0fd-0af342ee1fd6",
"audioUUID": "b347e704-e706-41ba-93c3-84e3676d1cbe",
"audioURL": "https://am.runware.ai/audio/os/a01d21/ws/5/ai/b347e704-e706-41ba-93c3-84e3676d1cbe.mp3",
"cost": 0.005775
}Roller Derby Livestream Vocal Stinger
¡Esto es Pista Brava, en vivo desde Monterrey! La final arranca a las 8:30.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: '¡Esto es Pista Brava, en vivo desde Monterrey! La final arranca a las 8:30.',
voice: 'Lupita',
language: 'es'
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "¡Esto es Pista Brava, en vivo desde Monterrey! La final arranca a las 8:30.",
"voice": "Lupita",
"language": "es"
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "81c07469-6a90-4e5d-abf3-1f85cab87aee",
"model": "inworld:tts@2",
"speech": {
"text": "¡Esto es Pista Brava, en vivo desde Monterrey! La final arranca a las 8:30.",
"voice": "Lupita",
"language": "es"
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text="¡Esto es Pista Brava, en vivo desde Monterrey! La final arranca a las 8:30." \
speech.voice=Lupita \
speech.language=es \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "81c07469-6a90-4e5d-abf3-1f85cab87aee",
"model": "inworld:tts@2",
"speech": {
"text": "¡Esto es Pista Brava, en vivo desde Monterrey! La final arranca a las 8:30.",
"voice": "Lupita",
"language": "es"
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "81c07469-6a90-4e5d-abf3-1f85cab87aee",
"audioUUID": "9f835dee-cf31-4827-8a5d-06ac4432a105",
"audioURL": "https://am.runware.ai/audio/os/a10dlim3/ws/5/ai/9f835dee-cf31-4827-8a5d-06ac4432a105.mp3",
"cost": 0.002625
}Immersive Greenhouse Warning Cue
午前2時17分、温室の北扉が開きます。合図が3回鳴るまで、ガラスには触れないでください。
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: '午前2時17分、温室の北扉が開きます。合図が3回鳴るまで、ガラスには触れないでください。',
voice: 'Asuka',
language: 'ja'
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "午前2時17分、温室の北扉が開きます。合図が3回鳴るまで、ガラスには触れないでください。",
"voice": "Asuka",
"language": "ja"
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "cd886dcc-0f8e-4c33-a720-ff922d31671d",
"model": "inworld:tts@2",
"speech": {
"text": "午前2時17分、温室の北扉が開きます。合図が3回鳴るまで、ガラスには触れないでください。",
"voice": "Asuka",
"language": "ja"
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text=午前2時17分、温室の北扉が開きます。合図が3回鳴るまで、ガラスには触れないでください。 \
speech.voice=Asuka \
speech.language=ja \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "cd886dcc-0f8e-4c33-a720-ff922d31671d",
"model": "inworld:tts@2",
"speech": {
"text": "午前2時17分、温室の北扉が開きます。合図が3回鳴るまで、ガラスには触れないでください。",
"voice": "Asuka",
"language": "ja"
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "cd886dcc-0f8e-4c33-a720-ff922d31671d",
"audioUUID": "50379b8f-945a-4b8e-9efe-e40bfc333c0f",
"audioURL": "https://am.runware.ai/audio/os/a09dlim3/ws/5/ai/50379b8f-945a-4b8e-9efe-e40bfc333c0f.mp3",
"cost": 0.00154
}Polish Numbers Station Voice Loop
Stacja Wisła, próba nocna. O 02:17 otwórz kopertę 6B i odczytaj trzeci wiersz. Jeśli częstotliwość spadnie poniżej 104,2 MHz, zakończ transmisję.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: 'Stacja Wisła, próba nocna. O 02:17 otwórz kopertę 6B i odczytaj trzeci wiersz. Jeśli częstotliwość spadnie poniżej 104,2 MHz, zakończ transmisję.',
voice: 'Szymon',
language: 'pl'
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "Stacja Wisła, próba nocna. O 02:17 otwórz kopertę 6B i odczytaj trzeci wiersz. Jeśli częstotliwość spadnie poniżej 104,2 MHz, zakończ transmisję.",
"voice": "Szymon",
"language": "pl"
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "68c87fbc-7003-4931-8c57-4708910a9cb8",
"model": "inworld:tts@2",
"speech": {
"text": "Stacja Wisła, próba nocna. O 02:17 otwórz kopertę 6B i odczytaj trzeci wiersz. Jeśli częstotliwość spadnie poniżej 104,2 MHz, zakończ transmisję.",
"voice": "Szymon",
"language": "pl"
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text="Stacja Wisła, próba nocna. O 02:17 otwórz kopertę 6B i odczytaj trzeci wiersz. Jeśli częstotliwość spadnie poniżej 104,2 MHz, zakończ transmisję." \
speech.voice=Szymon \
speech.language=pl \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "68c87fbc-7003-4931-8c57-4708910a9cb8",
"model": "inworld:tts@2",
"speech": {
"text": "Stacja Wisła, próba nocna. O 02:17 otwórz kopertę 6B i odczytaj trzeci wiersz. Jeśli częstotliwość spadnie poniżej 104,2 MHz, zakończ transmisję.",
"voice": "Szymon",
"language": "pl"
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "68c87fbc-7003-4931-8c57-4708910a9cb8",
"audioUUID": "74f1dc3d-a9ce-4379-a41a-258c6ee4bb3d",
"audioURL": "https://am.runware.ai/audio/os/a02d21/ws/5/ai/74f1dc3d-a9ce-4379-a41a-258c6ee4bb3d.mp3",
"cost": 0.005075
}Orbital Docking Concierge Briefing
Welcome to Meridian Transfer Ring. Docking in four minutes. Please secure loose items, confirm your berth number on the panel to your left, and keep the central passage clear for incoming crew. If this is your first time rotating through partial gravity, take a slow breath and let your balance adjust before standing. Connecting departures to Europa freight, inner-orbit commuter lines, and the museum shuttle will begin boarding twenty minutes after arrival. And for passengers meeting family at Gate C, yes, they can see you wave through the glass.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: 'Welcome to Meridian Transfer Ring. Docking in four minutes. Please secure loose items, confirm your berth number on the panel to your left, and keep the central passage clear for incoming crew. If this is your first time rotating through partial gravity, take a slow breath and let your balance adjust before standing. Connecting departures to Europa freight, inner-orbit commuter lines, and the museum shuttle will begin boarding twenty minutes after arrival. And for passengers meeting family at Gate C, yes, they can see you wave through the glass.',
voice: 'Claire',
language: 'en',
speed: 0.9
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "Welcome to Meridian Transfer Ring. Docking in four minutes. Please secure loose items, confirm your berth number on the panel to your left, and keep the central passage clear for incoming crew. If this is your first time rotating through partial gravity, take a slow breath and let your balance adjust before standing. Connecting departures to Europa freight, inner-orbit commuter lines, and the museum shuttle will begin boarding twenty minutes after arrival. And for passengers meeting family at Gate C, yes, they can see you wave through the glass.",
"voice": "Claire",
"language": "en",
"speed": 0.9
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "4e4053b1-919c-464a-8579-12329177adb7",
"model": "inworld:tts@2",
"speech": {
"text": "Welcome to Meridian Transfer Ring. Docking in four minutes. Please secure loose items, confirm your berth number on the panel to your left, and keep the central passage clear for incoming crew. If this is your first time rotating through partial gravity, take a slow breath and let your balance adjust before standing. Connecting departures to Europa freight, inner-orbit commuter lines, and the museum shuttle will begin boarding twenty minutes after arrival. And for passengers meeting family at Gate C, yes, they can see you wave through the glass.",
"voice": "Claire",
"language": "en",
"speed": 0.9
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text="Welcome to Meridian Transfer Ring. Docking in four minutes. Please secure loose items, confirm your berth number on the panel to your left, and keep the central passage clear for incoming crew. If this is your first time rotating through partial gravity, take a slow breath and let your balance adjust before standing. Connecting departures to Europa freight, inner-orbit commuter lines, and the museum shuttle will begin boarding twenty minutes after arrival. And for passengers meeting family at Gate C, yes, they can see you wave through the glass." \
speech.voice=Claire \
speech.language=en \
speech.speed=0.9 \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "4e4053b1-919c-464a-8579-12329177adb7",
"model": "inworld:tts@2",
"speech": {
"text": "Welcome to Meridian Transfer Ring. Docking in four minutes. Please secure loose items, confirm your berth number on the panel to your left, and keep the central passage clear for incoming crew. If this is your first time rotating through partial gravity, take a slow breath and let your balance adjust before standing. Connecting departures to Europa freight, inner-orbit commuter lines, and the museum shuttle will begin boarding twenty minutes after arrival. And for passengers meeting family at Gate C, yes, they can see you wave through the glass.",
"voice": "Claire",
"language": "en",
"speed": 0.9
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "4e4053b1-919c-464a-8579-12329177adb7",
"audioUUID": "aba7608a-1f6c-4a20-b66e-9f67d8839309",
"audioURL": "https://am.runware.ai/audio/os/a07dlim3/ws/5/ai/aba7608a-1f6c-4a20-b66e-9f67d8839309.mp3",
"cost": 0.019285
}Floating Archive Welcome Message
ようこそ、漂う書庫へ。私は案内役です。ここでは、失われた手紙、航路の記録、そして誰にも届けられなかった物語を保管しています。はじめての方ですね。緊張しなくて大丈夫。まずは深呼吸をひとつ。それから、今いちばん知りたいことを教えてください。静かな案内が必要なら、ゆっくりお手伝いします。
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: 'ようこそ、漂う書庫へ。私は案内役です。ここでは、失われた手紙、航路の記録、そして誰にも届けられなかった物語を保管しています。はじめての方ですね。緊張しなくて大丈夫。まずは深呼吸をひとつ。それから、今いちばん知りたいことを教えてください。静かな案内が必要なら、ゆっくりお手伝いします。',
voice: 'Asuka',
language: 'ja',
speed: 0.9
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "ようこそ、漂う書庫へ。私は案内役です。ここでは、失われた手紙、航路の記録、そして誰にも届けられなかった物語を保管しています。はじめての方ですね。緊張しなくて大丈夫。まずは深呼吸をひとつ。それから、今いちばん知りたいことを教えてください。静かな案内が必要なら、ゆっくりお手伝いします。",
"voice": "Asuka",
"language": "ja",
"speed": 0.9
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "a4a20469-3a41-4288-bde0-478f8874dcec",
"model": "inworld:tts@2",
"speech": {
"text": "ようこそ、漂う書庫へ。私は案内役です。ここでは、失われた手紙、航路の記録、そして誰にも届けられなかった物語を保管しています。はじめての方ですね。緊張しなくて大丈夫。まずは深呼吸をひとつ。それから、今いちばん知りたいことを教えてください。静かな案内が必要なら、ゆっくりお手伝いします。",
"voice": "Asuka",
"language": "ja",
"speed": 0.9
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text=ようこそ、漂う書庫へ。私は案内役です。ここでは、失われた手紙、航路の記録、そして誰にも届けられなかった物語を保管しています。はじめての方ですね。緊張しなくて大丈夫。まずは深呼吸をひとつ。それから、今いちばん知りたいことを教えてください。静かな案内が必要なら、ゆっくりお手伝いします。 \
speech.voice=Asuka \
speech.language=ja \
speech.speed=0.9 \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "a4a20469-3a41-4288-bde0-478f8874dcec",
"model": "inworld:tts@2",
"speech": {
"text": "ようこそ、漂う書庫へ。私は案内役です。ここでは、失われた手紙、航路の記録、そして誰にも届けられなかった物語を保管しています。はじめての方ですね。緊張しなくて大丈夫。まずは深呼吸をひとつ。それから、今いちばん知りたいことを教えてください。静かな案内が必要なら、ゆっくりお手伝いします。",
"voice": "Asuka",
"language": "ja",
"speed": 0.9
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "a4a20469-3a41-4288-bde0-478f8874dcec",
"audioUUID": "fefeebd4-0980-4a98-9c33-ea3f4b9c323c",
"audioURL": "https://am.runware.ai/audio/os/a09dlim3/ws/5/ai/fefeebd4-0980-4a98-9c33-ea3f4b9c323c.mp3",
"cost": 0.004935
}Harbor Emergency Siren Bulletin
Attention all crews at Breakwater Terminal 7. This is a safety bulletin for 04/18/2027, issued at 05:45. Due to a pressure fault in storage unit B-12, access to piers 3 through 5 is restricted within a 200 meter radius. Tug 28 and response team 14 are en route, with arrival in 6 minutes. Personnel assigned to zone C should report to muster point 2 by 06:00 and confirm headcount of 47. If you are carrying class 8 materials, contact dispatch on channel 16 immediately and state your cargo ID.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: 'Attention all crews at Breakwater Terminal 7. This is a safety bulletin for 04/18/2027, issued at 05:45. Due to a pressure fault in storage unit B-12, access to piers 3 through 5 is restricted within a 200 meter radius. Tug 28 and response team 14 are en route, with arrival in 6 minutes. Personnel assigned to zone C should report to muster point 2 by 06:00 and confirm headcount of 47. If you are carrying class 8 materials, contact dispatch on channel 16 immediately and state your cargo ID.',
voice: 'Gareth',
language: 'en',
speed: 1
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "Attention all crews at Breakwater Terminal 7. This is a safety bulletin for 04/18/2027, issued at 05:45. Due to a pressure fault in storage unit B-12, access to piers 3 through 5 is restricted within a 200 meter radius. Tug 28 and response team 14 are en route, with arrival in 6 minutes. Personnel assigned to zone C should report to muster point 2 by 06:00 and confirm headcount of 47. If you are carrying class 8 materials, contact dispatch on channel 16 immediately and state your cargo ID.",
"voice": "Gareth",
"language": "en",
"speed": 1
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "1540ed6f-d187-4238-93be-e52499e94e66",
"model": "inworld:tts@2",
"speech": {
"text": "Attention all crews at Breakwater Terminal 7. This is a safety bulletin for 04/18/2027, issued at 05:45. Due to a pressure fault in storage unit B-12, access to piers 3 through 5 is restricted within a 200 meter radius. Tug 28 and response team 14 are en route, with arrival in 6 minutes. Personnel assigned to zone C should report to muster point 2 by 06:00 and confirm headcount of 47. If you are carrying class 8 materials, contact dispatch on channel 16 immediately and state your cargo ID.",
"voice": "Gareth",
"language": "en",
"speed": 1
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text="Attention all crews at Breakwater Terminal 7. This is a safety bulletin for 04/18/2027, issued at 05:45. Due to a pressure fault in storage unit B-12, access to piers 3 through 5 is restricted within a 200 meter radius. Tug 28 and response team 14 are en route, with arrival in 6 minutes. Personnel assigned to zone C should report to muster point 2 by 06:00 and confirm headcount of 47. If you are carrying class 8 materials, contact dispatch on channel 16 immediately and state your cargo ID." \
speech.voice=Gareth \
speech.language=en \
speech.speed=1 \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "1540ed6f-d187-4238-93be-e52499e94e66",
"model": "inworld:tts@2",
"speech": {
"text": "Attention all crews at Breakwater Terminal 7. This is a safety bulletin for 04/18/2027, issued at 05:45. Due to a pressure fault in storage unit B-12, access to piers 3 through 5 is restricted within a 200 meter radius. Tug 28 and response team 14 are en route, with arrival in 6 minutes. Personnel assigned to zone C should report to muster point 2 by 06:00 and confirm headcount of 47. If you are carrying class 8 materials, contact dispatch on channel 16 immediately and state your cargo ID.",
"voice": "Gareth",
"language": "en",
"speed": 1
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "1540ed6f-d187-4238-93be-e52499e94e66",
"audioUUID": "817e9e9c-aaab-4f04-b8ca-17f8abce0e56",
"audioURL": "https://am.runware.ai/audio/os/a09dlim3/ws/5/ai/817e9e9c-aaab-4f04-b8ca-17f8abce0e56.mp3",
"cost": 0.01729
}Desert Relay Station Dispatch
Central de relevo Sierra Nueve, atención. Si escuchan este mensaje, mantengan la calma. Hemos recuperado energía parcial en el anillo exterior y el sistema de enfriamiento vuelve a responder, pero el corredor norte sigue bloqueado por polvo y escombros. Prioridad uno: personal médico al módulo dos. Prioridad dos: equipo técnico con filtros nuevos a la compuerta este. No corran, no saturen el canal y confirmen su ubicación al llegar. Repito: la situación está contenida, pero necesitamos movimientos precisos y ordenados. En diez minutos emitiré una nueva actualización.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: 'Central de relevo Sierra Nueve, atención. Si escuchan este mensaje, mantengan la calma. Hemos recuperado energía parcial en el anillo exterior y el sistema de enfriamiento vuelve a responder, pero el corredor norte sigue bloqueado por polvo y escombros. Prioridad uno: personal médico al módulo dos. Prioridad dos: equipo técnico con filtros nuevos a la compuerta este. No corran, no saturen el canal y confirmen su ubicación al llegar. Repito: la situación está contenida, pero necesitamos movimientos precisos y ordenados. En diez minutos emitiré una nueva actualización.',
voice: 'Diego',
language: 'es',
speed: 1
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "Central de relevo Sierra Nueve, atención. Si escuchan este mensaje, mantengan la calma. Hemos recuperado energía parcial en el anillo exterior y el sistema de enfriamiento vuelve a responder, pero el corredor norte sigue bloqueado por polvo y escombros. Prioridad uno: personal médico al módulo dos. Prioridad dos: equipo técnico con filtros nuevos a la compuerta este. No corran, no saturen el canal y confirmen su ubicación al llegar. Repito: la situación está contenida, pero necesitamos movimientos precisos y ordenados. En diez minutos emitiré una nueva actualización.",
"voice": "Diego",
"language": "es",
"speed": 1
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "1574f33e-8fa1-4fa1-a45a-1b385a048ad0",
"model": "inworld:tts@2",
"speech": {
"text": "Central de relevo Sierra Nueve, atención. Si escuchan este mensaje, mantengan la calma. Hemos recuperado energía parcial en el anillo exterior y el sistema de enfriamiento vuelve a responder, pero el corredor norte sigue bloqueado por polvo y escombros. Prioridad uno: personal médico al módulo dos. Prioridad dos: equipo técnico con filtros nuevos a la compuerta este. No corran, no saturen el canal y confirmen su ubicación al llegar. Repito: la situación está contenida, pero necesitamos movimientos precisos y ordenados. En diez minutos emitiré una nueva actualización.",
"voice": "Diego",
"language": "es",
"speed": 1
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text="Central de relevo Sierra Nueve, atención. Si escuchan este mensaje, mantengan la calma. Hemos recuperado energía parcial en el anillo exterior y el sistema de enfriamiento vuelve a responder, pero el corredor norte sigue bloqueado por polvo y escombros. Prioridad uno: personal médico al módulo dos. Prioridad dos: equipo técnico con filtros nuevos a la compuerta este. No corran, no saturen el canal y confirmen su ubicación al llegar. Repito: la situación está contenida, pero necesitamos movimientos precisos y ordenados. En diez minutos emitiré una nueva actualización." \
speech.voice=Diego \
speech.language=es \
speech.speed=1 \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "1574f33e-8fa1-4fa1-a45a-1b385a048ad0",
"model": "inworld:tts@2",
"speech": {
"text": "Central de relevo Sierra Nueve, atención. Si escuchan este mensaje, mantengan la calma. Hemos recuperado energía parcial en el anillo exterior y el sistema de enfriamiento vuelve a responder, pero el corredor norte sigue bloqueado por polvo y escombros. Prioridad uno: personal médico al módulo dos. Prioridad dos: equipo técnico con filtros nuevos a la compuerta este. No corran, no saturen el canal y confirmen su ubicación al llegar. Repito: la situación está contenida, pero necesitamos movimientos precisos y ordenados. En diez minutos emitiré una nueva actualización.",
"voice": "Diego",
"language": "es",
"speed": 1
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "1574f33e-8fa1-4fa1-a45a-1b385a048ad0",
"audioUUID": "ef92a38b-c3e8-44ca-86f0-d916c3f7283e",
"audioURL": "https://am.runware.ai/audio/os/a05d22/ws/5/ai/ef92a38b-c3e8-44ca-86f0-d916c3f7283e.mp3",
"cost": 0.020055
}Subterranean Transit Delay Announcement
Attention passengers on Platform 4: the eastbound train is delayed by approximately twelve minutes due to signal maintenance ahead. If you need to reach Central Exchange sooner, please transfer to the silver line at Junction Square and follow the overhead signs for Track B. We know delays are frustrating, and we appreciate your patience. Staff in blue jackets are available near the information pillars if you need step-by-step directions.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'inworld:tts@2',
speech: {
text: 'Attention passengers on Platform 4: the eastbound train is delayed by approximately twelve minutes due to signal maintenance ahead. If you need to reach Central Exchange sooner, please transfer to the silver line at Junction Square and follow the overhead signs for Track B. We know delays are frustrating, and we appreciate your patience. Staff in blue jackets are available near the information pillars if you need step-by-step directions.',
voice: 'Claire',
language: 'en',
speed: 0.9
},
settings: {
textNormalization: true
}
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "inworld:tts@2",
"speech": {
"text": "Attention passengers on Platform 4: the eastbound train is delayed by approximately twelve minutes due to signal maintenance ahead. If you need to reach Central Exchange sooner, please transfer to the silver line at Junction Square and follow the overhead signs for Track B. We know delays are frustrating, and we appreciate your patience. Staff in blue jackets are available near the information pillars if you need step-by-step directions.",
"voice": "Claire",
"language": "en",
"speed": 0.9
},
"settings": {
"textNormalization": True
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "a3266d2e-f9fa-49c0-a851-ad8ff96bebb4",
"model": "inworld:tts@2",
"speech": {
"text": "Attention passengers on Platform 4: the eastbound train is delayed by approximately twelve minutes due to signal maintenance ahead. If you need to reach Central Exchange sooner, please transfer to the silver line at Junction Square and follow the overhead signs for Track B. We know delays are frustrating, and we appreciate your patience. Staff in blue jackets are available near the information pillars if you need step-by-step directions.",
"voice": "Claire",
"language": "en",
"speed": 0.9
},
"settings": {
"textNormalization": true
}
}
]'runware run inworld:tts@2 \
speech.text="Attention passengers on Platform 4: the eastbound train is delayed by approximately twelve minutes due to signal maintenance ahead. If you need to reach Central Exchange sooner, please transfer to the silver line at Junction Square and follow the overhead signs for Track B. We know delays are frustrating, and we appreciate your patience. Staff in blue jackets are available near the information pillars if you need step-by-step directions." \
speech.voice=Claire \
speech.language=en \
speech.speed=0.9 \
settings.textNormalization=true{
"taskType": "audioInference",
"taskUUID": "a3266d2e-f9fa-49c0-a851-ad8ff96bebb4",
"model": "inworld:tts@2",
"speech": {
"text": "Attention passengers on Platform 4: the eastbound train is delayed by approximately twelve minutes due to signal maintenance ahead. If you need to reach Central Exchange sooner, please transfer to the silver line at Junction Square and follow the overhead signs for Track B. We know delays are frustrating, and we appreciate your patience. Staff in blue jackets are available near the information pillars if you need step-by-step directions.",
"voice": "Claire",
"language": "en",
"speed": 0.9
},
"settings": {
"textNormalization": true
}
}{
"taskType": "audioInference",
"taskUUID": "a3266d2e-f9fa-49c0-a851-ad8ff96bebb4",
"audioUUID": "614e4013-20fc-4ade-9bdc-c4247079fa1b",
"audioURL": "https://am.runware.ai/audio/os/a08dlim3/ws/5/ai/614e4013-20fc-4ade-9bdc-c4247079fa1b.mp3",
"cost": 0.015435
}