xAI Text-to-Speech

xAI Text-to-Speech converts text into natural-sounding spoken audio with a single API call. It offers five expressive voices (Eve, Ara, Leo, Rex, and Sal), inline speech tags for fine-grained control over pauses, laughter, whispers, and emphasis, and supports over 20 auto-detected languages.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Hindi Guided Meditation
अपनी आँखें धीरे से बंद करें, और एक लंबी, गहरी साँस लें। <pause time="1.5s"/> महसूस करें कि हर साँस के साथ आपका मन शांत होता जा रहा है। <pause time="1s"/> आपके आसपास एक कोमल, सुनहरी रोशनी फैल रही है, जो आपको सुरक्षा, स्थिरता और सुकून का एहसास दे रही है। <pause time="1.5s"/> अब धीरे-धीरे साँस छोड़ें, और दिन भर का तनाव अपने शरीर से बाहर जाने दें।
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'xai:tts@0',
speech: {
text: 'अपनी आँखें धीरे से बंद करें, और एक लंबी, गहरी साँस लें। <pause time="1.5s"/> महसूस करें कि हर साँस के साथ आपका मन शांत होता जा रहा है। <pause time="1s"/> आपके आसपास एक कोमल, सुनहरी रोशनी फैल रही है, जो आपको सुरक्षा, स्थिरता और सुकून का एहसास दे रही है। <pause time="1.5s"/> अब धीरे-धीरे साँस छोड़ें, और दिन भर का तनाव अपने शरीर से बाहर जाने दें।',
voice: 'ara',
language: 'hi'
}
})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": "xai:tts@0",
"speech": {
"text": "अपनी आँखें धीरे से बंद करें, और एक लंबी, गहरी साँस लें। <pause time=\"1.5s\"/> महसूस करें कि हर साँस के साथ आपका मन शांत होता जा रहा है। <pause time=\"1s\"/> आपके आसपास एक कोमल, सुनहरी रोशनी फैल रही है, जो आपको सुरक्षा, स्थिरता और सुकून का एहसास दे रही है। <pause time=\"1.5s\"/> अब धीरे-धीरे साँस छोड़ें, और दिन भर का तनाव अपने शरीर से बाहर जाने दें।",
"voice": "ara",
"language": "hi"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "4a9f110c-7e7a-4f76-91f5-f5e9648d85af",
"model": "xai:tts@0",
"speech": {
"text": "अपनी आँखें धीरे से बंद करें, और एक लंबी, गहरी साँस लें। <pause time=\"1.5s\"/> महसूस करें कि हर साँस के साथ आपका मन शांत होता जा रहा है। <pause time=\"1s\"/> आपके आसपास एक कोमल, सुनहरी रोशनी फैल रही है, जो आपको सुरक्षा, स्थिरता और सुकून का एहसास दे रही है। <pause time=\"1.5s\"/> अब धीरे-धीरे साँस छोड़ें, और दिन भर का तनाव अपने शरीर से बाहर जाने दें।",
"voice": "ara",
"language": "hi"
}
}
]'runware run xai:tts@0 \
speech.text="अपनी आँखें धीरे से बंद करें, और एक लंबी, गहरी साँस लें। <pause time=\"1.5s\"/> महसूस करें कि हर साँस के साथ आपका मन शांत होता जा रहा है। <pause time=\"1s\"/> आपके आसपास एक कोमल, सुनहरी रोशनी फैल रही है, जो आपको सुरक्षा, स्थिरता और सुकून का एहसास दे रही है। <pause time=\"1.5s\"/> अब धीरे-धीरे साँस छोड़ें, और दिन भर का तनाव अपने शरीर से बाहर जाने दें।" \
speech.voice=ara \
speech.language=hi{
"taskType": "audioInference",
"taskUUID": "4a9f110c-7e7a-4f76-91f5-f5e9648d85af",
"model": "xai:tts@0",
"speech": {
"text": "अपनी आँखें धीरे से बंद करें, और एक लंबी, गहरी साँस लें। <pause time=\"1.5s\"/> महसूस करें कि हर साँस के साथ आपका मन शांत होता जा रहा है। <pause time=\"1s\"/> आपके आसपास एक कोमल, सुनहरी रोशनी फैल रही है, जो आपको सुरक्षा, स्थिरता और सुकून का एहसास दे रही है। <pause time=\"1.5s\"/> अब धीरे-धीरे साँस छोड़ें, और दिन भर का तनाव अपने शरीर से बाहर जाने दें।",
"voice": "ara",
"language": "hi"
}
}{
"taskType": "audioInference",
"taskUUID": "4a9f110c-7e7a-4f76-91f5-f5e9648d85af",
"audioUUID": "dcbcc15a-5273-4c3a-b87c-569f95adf918",
"audioURL": "https://am.runware.ai/audio/os/a19d05/ws/5/ai/dcbcc15a-5273-4c3a-b87c-569f95adf918.mp3",
"cost": 0.00145
}Expressive Story Narration
The observatory lights dimmed one by one. [pause] Above the mountain, the sky opened like black velvet stitched with stars. "Do you see it?" she whispered. [whisper] "The comet is early." [pause] Then, with a sudden laugh, she pointed east. [laugh] "There! A silver flame across the dark." And for one breathless moment, the whole world stood still.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'xai:tts@0',
speech: {
text: 'The observatory lights dimmed one by one. [pause] Above the mountain, the sky opened like black velvet stitched with stars. "Do you see it?" she whispered. [whisper] "The comet is early." [pause] Then, with a sudden laugh, she pointed east. [laugh] "There! A silver flame across the dark." And for one breathless moment, the whole world stood still.',
voice: 'eve',
language: 'en'
}
})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": "xai:tts@0",
"speech": {
"text": "The observatory lights dimmed one by one. [pause] Above the mountain, the sky opened like black velvet stitched with stars. \"Do you see it?\" she whispered. [whisper] \"The comet is early.\" [pause] Then, with a sudden laugh, she pointed east. [laugh] \"There! A silver flame across the dark.\" And for one breathless moment, the whole world stood still.",
"voice": "eve",
"language": "en"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "e844d206-9c52-4597-bc4a-f83313956968",
"model": "xai:tts@0",
"speech": {
"text": "The observatory lights dimmed one by one. [pause] Above the mountain, the sky opened like black velvet stitched with stars. \"Do you see it?\" she whispered. [whisper] \"The comet is early.\" [pause] Then, with a sudden laugh, she pointed east. [laugh] \"There! A silver flame across the dark.\" And for one breathless moment, the whole world stood still.",
"voice": "eve",
"language": "en"
}
}
]'runware run xai:tts@0 \
speech.text="The observatory lights dimmed one by one. [pause] Above the mountain, the sky opened like black velvet stitched with stars. \"Do you see it?\" she whispered. [whisper] \"The comet is early.\" [pause] Then, with a sudden laugh, she pointed east. [laugh] \"There! A silver flame across the dark.\" And for one breathless moment, the whole world stood still." \
speech.voice=eve \
speech.language=en{
"taskType": "audioInference",
"taskUUID": "e844d206-9c52-4597-bc4a-f83313956968",
"model": "xai:tts@0",
"speech": {
"text": "The observatory lights dimmed one by one. [pause] Above the mountain, the sky opened like black velvet stitched with stars. \"Do you see it?\" she whispered. [whisper] \"The comet is early.\" [pause] Then, with a sudden laugh, she pointed east. [laugh] \"There! A silver flame across the dark.\" And for one breathless moment, the whole world stood still.",
"voice": "eve",
"language": "en"
}
}{
"taskType": "audioInference",
"taskUUID": "e844d206-9c52-4597-bc4a-f83313956968",
"audioUUID": "21467765-7783-4630-8c0d-e618dca19eb7",
"audioURL": "https://am.runware.ai/audio/os/a01d21/ws/5/ai/21467765-7783-4630-8c0d-e618dca19eb7.mp3",
"cost": 0.00147
}Spanish Travel Narration
Bienvenidos a Sevilla, una ciudad de luz dorada, patios llenos de flores y música que vibra en cada rincón. Al caer la tarde, la Giralda se recorta contra el cielo, y las calles estrechas invitan a perderse sin prisa. [pause] Respira hondo. Escucha el murmullo de las plazas, el eco de los pasos sobre la piedra y la calidez de una noche que apenas comienza.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'xai:tts@0',
speech: {
text: 'Bienvenidos a Sevilla, una ciudad de luz dorada, patios llenos de flores y música que vibra en cada rincón. Al caer la tarde, la Giralda se recorta contra el cielo, y las calles estrechas invitan a perderse sin prisa. [pause] Respira hondo. Escucha el murmullo de las plazas, el eco de los pasos sobre la piedra y la calidez de una noche que apenas comienza.',
voice: 'eve',
language: 'es-ES'
}
})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": "xai:tts@0",
"speech": {
"text": "Bienvenidos a Sevilla, una ciudad de luz dorada, patios llenos de flores y música que vibra en cada rincón. Al caer la tarde, la Giralda se recorta contra el cielo, y las calles estrechas invitan a perderse sin prisa. [pause] Respira hondo. Escucha el murmullo de las plazas, el eco de los pasos sobre la piedra y la calidez de una noche que apenas comienza.",
"voice": "eve",
"language": "es-ES"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "3cc30108-1696-446e-9d02-3c77a94183ef",
"model": "xai:tts@0",
"speech": {
"text": "Bienvenidos a Sevilla, una ciudad de luz dorada, patios llenos de flores y música que vibra en cada rincón. Al caer la tarde, la Giralda se recorta contra el cielo, y las calles estrechas invitan a perderse sin prisa. [pause] Respira hondo. Escucha el murmullo de las plazas, el eco de los pasos sobre la piedra y la calidez de una noche que apenas comienza.",
"voice": "eve",
"language": "es-ES"
}
}
]'runware run xai:tts@0 \
speech.text="Bienvenidos a Sevilla, una ciudad de luz dorada, patios llenos de flores y música que vibra en cada rincón. Al caer la tarde, la Giralda se recorta contra el cielo, y las calles estrechas invitan a perderse sin prisa. [pause] Respira hondo. Escucha el murmullo de las plazas, el eco de los pasos sobre la piedra y la calidez de una noche que apenas comienza." \
speech.voice=eve \
speech.language=es-ES{
"taskType": "audioInference",
"taskUUID": "3cc30108-1696-446e-9d02-3c77a94183ef",
"model": "xai:tts@0",
"speech": {
"text": "Bienvenidos a Sevilla, una ciudad de luz dorada, patios llenos de flores y música que vibra en cada rincón. Al caer la tarde, la Giralda se recorta contra el cielo, y las calles estrechas invitan a perderse sin prisa. [pause] Respira hondo. Escucha el murmullo de las plazas, el eco de los pasos sobre la piedra y la calidez de una noche que apenas comienza.",
"voice": "eve",
"language": "es-ES"
}
}{
"taskType": "audioInference",
"taskUUID": "3cc30108-1696-446e-9d02-3c77a94183ef",
"audioUUID": "2457d5b1-ee39-4d7a-af4d-aab1cee49ed6",
"audioURL": "https://am.runware.ai/audio/os/a10d08/ws/5/ai/2457d5b1-ee39-4d7a-af4d-aab1cee49ed6.mp3",
"cost": 0.0015
}French Travel Narration
Bienvenue à Paris. <pause time="700ms"/> Au lever du soleil, la Seine scintille comme un ruban d'or, les cafés s'éveillent lentement, et la ville murmure déjà ses histoires. <emphasis level="strong">Écoutez</emphasis> le tintement des tasses, le pas pressé des passants, et le souffle léger du vent autour de la tour Eiffel. <pause time="500ms"/> Ce voyage commence ici, avec élégance, lumière, et un peu de magie.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'xai:tts@0',
speech: {
text: 'Bienvenue à Paris. <pause time="700ms"/> Au lever du soleil, la Seine scintille comme un ruban d\'or, les cafés s\'éveillent lentement, et la ville murmure déjà ses histoires. <emphasis level="strong">Écoutez</emphasis> le tintement des tasses, le pas pressé des passants, et le souffle léger du vent autour de la tour Eiffel. <pause time="500ms"/> Ce voyage commence ici, avec élégance, lumière, et un peu de magie.',
voice: 'eve',
language: 'fr'
}
})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": "xai:tts@0",
"speech": {
"text": "Bienvenue à Paris. <pause time=\"700ms\"/> Au lever du soleil, la Seine scintille comme un ruban d'or, les cafés s'éveillent lentement, et la ville murmure déjà ses histoires. <emphasis level=\"strong\">Écoutez</emphasis> le tintement des tasses, le pas pressé des passants, et le souffle léger du vent autour de la tour Eiffel. <pause time=\"500ms\"/> Ce voyage commence ici, avec élégance, lumière, et un peu de magie.",
"voice": "eve",
"language": "fr"
}
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "audioInference",
"taskUUID": "583bb6a1-3d00-484f-a442-f1e61bf53dd7",
"model": "xai:tts@0",
"speech": {
"text": "Bienvenue à Paris. <pause time=\"700ms\"/> Au lever du soleil, la Seine scintille comme un ruban d'or, les cafés s'éveillent lentement, et la ville murmure déjà ses histoires. <emphasis level=\"strong\">Écoutez</emphasis> le tintement des tasses, le pas pressé des passants, et le souffle léger du vent autour de la tour Eiffel. <pause time=\"500ms\"/> Ce voyage commence ici, avec élégance, lumière, et un peu de magie.",
"voice": "eve",
"language": "fr"
}
}
]'runware run xai:tts@0 \
speech.text="Bienvenue à Paris. <pause time=\"700ms\"/> Au lever du soleil, la Seine scintille comme un ruban d'or, les cafés s'éveillent lentement, et la ville murmure déjà ses histoires. <emphasis level=\"strong\">Écoutez</emphasis> le tintement des tasses, le pas pressé des passants, et le souffle léger du vent autour de la tour Eiffel. <pause time=\"500ms\"/> Ce voyage commence ici, avec élégance, lumière, et un peu de magie." \
speech.voice=eve \
speech.language=fr{
"taskType": "audioInference",
"taskUUID": "583bb6a1-3d00-484f-a442-f1e61bf53dd7",
"model": "xai:tts@0",
"speech": {
"text": "Bienvenue à Paris. <pause time=\"700ms\"/> Au lever du soleil, la Seine scintille comme un ruban d'or, les cafés s'éveillent lentement, et la ville murmure déjà ses histoires. <emphasis level=\"strong\">Écoutez</emphasis> le tintement des tasses, le pas pressé des passants, et le souffle léger du vent autour de la tour Eiffel. <pause time=\"500ms\"/> Ce voyage commence ici, avec élégance, lumière, et un peu de magie.",
"voice": "eve",
"language": "fr"
}
}{
"taskType": "audioInference",
"taskUUID": "583bb6a1-3d00-484f-a442-f1e61bf53dd7",
"audioUUID": "43b5f1e3-5853-42f9-9b34-a74c502f0001",
"audioURL": "https://am.runware.ai/audio/os/a18d05/ws/5/ai/43b5f1e3-5853-42f9-9b34-a74c502f0001.mp3",
"cost": 0.00174
}