Model Capabilities
Voice Overview
The xAI Voice APIs offer a range of powerful voice capabilities, all powered by Grok, with enterprise-grade reliability and sub-second latency.
Voice Agent API
Real-time speech-to-speech conversations with tool use, powered by Grok.
Text to Speech
Generate speech with expressive multilingual voices, speech tags, and telephony codecs.
Speech to Text
Transcribe audio to text in 25 languages with batch and streaming modes.
Voice Agent API
Build real-time, speech-to-speech voice agents over WebSockets, with low-latency turn-taking and tool use. For client-side apps, use Ephemeral Tokens to connect securely without exposing your API key.
import asyncio
import json
import os
import websockets
async def voice_agent():
async with websockets.connect(
"wss://api.x.ai/v1/realtime?model=grok-voice-latest",
additional_headers={"Authorization": f"Bearer {os.environ['XAI_API_KEY']}"}
) as ws:
# Configure voice and enable tools
await ws.send(json.dumps({
"type": "session.update",
"session": {
"voice": "eve",
"instructions": "You are a helpful customer support agent.",
"turn_detection": {"type": "server_vad"},
"tools": [{"type": "web_search"}]
}
}))
# Stream audio and receive responses
async for message in ws:
event = json.loads(message)
if event["type"] == "response.output_audio.delta":
# Play audio: base64.b64decode(event["delta"])
pass
asyncio.run(voice_agent())
Demo Apps: Web Agent · Twilio Phone Agent · WebRTC Agent · iOS Tester App
Text to Speech
Convert text to spoken audio with a large roster of expressive voices. Inline speech tags (laughter, whispers, pauses) and output formats from high-fidelity MP3 to telephony μ-law. Unary requests or WebSocket streaming.
import os
import requests
response = requests.post(
"https://api.x.ai/v1/tts",
headers={
"Authorization": f"Bearer {os.environ['XAI_API_KEY']}",
"Content-Type": "application/json",
},
json={
"text": "Welcome to xAI. How can I help you today?",
"voice_id": "eve",
"language": "en",
},
)
with open("welcome.mp3", "wb") as f:
f.write(response.content)
Real World Examples: LiveKit · Pipecat
Speech to Text
Transcribe audio files in a single call or stream over WebSocket. 12 audio formats, word-level timestamps, multichannel, speaker diarization, Smart Turn end-of-turn detection, and 25 languages.
import os
import requests
response = requests.post(
"https://api.x.ai/v1/stt",
headers={"Authorization": f"Bearer {os.environ['XAI_API_KEY']}"},
files={"file": ("recording.mp3", open("recording.mp3", "rb"), "audio/mpeg")},
)
print(response.json()["text"])
Real World Examples: Voximplant
Quick Start: Custom Voices
Clone a voice from a short reference clip, then use the resulting voice_id anywhere a built-in voice works:
import os
import requests
# 1. Create a custom voice from a reference audio clip (max 120s).
with open("reference.wav", "rb") as f:
create = requests.post(
"https://api.x.ai/v1/custom-voices",
headers={"Authorization": f"Bearer {os.environ['XAI_API_KEY']}"},
files={"file": ("reference.wav", f, "audio/wav")},
data={"name": "Friendly Narrator", "language": "en"},
)
voice_id = create.json()["voice_id"]
# 2. Use the custom voice for TTS.
speech = requests.post(
"https://api.x.ai/v1/tts",
headers={
"Authorization": f"Bearer {os.environ['XAI_API_KEY']}",
"Content-Type": "application/json",
},
json={
"text": "Hello! This is my custom voice.",
"voice_id": voice_id,
"language": "en",
},
)
with open("custom.mp3", "wb") as f:
f.write(speech.content)
The custom voice_id also works with the streaming TTS WebSocket and the Voice Agent realtime API. See the Custom Voices guide for the full API.
Voices
When using the Voice Agent API or Text to Speech, you can choose from the full set of built-in voices. Each has its own personality and tone, so pick the one that best fits your application (eve is the default):
| Voice | Tone & Use Cases | Sample |
|---|---|---|
carina | Soft, empathetic, and soothingWellnessSupport | |
zagan | Powerful, dramatic, and unmistakableCharactersNarration | |
helix | Bold, dynamic, and adrenaline-fueledCommentaryPodcast | |
orion | Rich, cinematic, and resonantNarrationAudiobooks | |
luna | Gentle, patient, and deeply nurturingEducationAssistant | |
iris | Friendly, upbeat, and naturally charmingSalesSupport | |
altair | Elegant, refined, and effortlessly premiumAdvertisingNarration | |
zenith | Sharp, focused, and drivenSalesAdvertising | |
perseus | Strong, confident, and trustworthyAdvertisingNarration | |
helios | Upbeat, energetic, and endlessly versatileAssistantWellness | |
lux | Grounded, calm, and quietly wiseWellnessNarration | |
kepler | Inventive, forward-thinking, and charismaticAdvertisingPodcast | |
rigel | Precise, professional, and calmly confidentAssistantSupport | |
cosmo | Bright, curious, and easy to followEducationPodcast | |
celeste | Compassionate, confident, and reassuringSupportAssistant | |
ursa | Friendly, warm, and steadfastAssistantPodcast | |
sirius | Quick-witted, clever, and playfulCommentaryCharacters | |
lumen | Warm, articulate, and engagingEducationAdvertising | |
castor | Charismatic, down-to-earth, and easygoingSalesSupport | |
naksh | Warm, thoughtful, and wiseAssistantSupport | |
atlas | Confident, commanding, and reassuringSalesAssistant | |
ara | Warm and friendly | |
eve | Energetic and upbeat | |
leo | Authoritative and strong | |
rex | Confident and clear | |
sal | Smooth and balanced |
Enterprise Compliance & Security
The xAI Voice APIs are built for production workloads with strict security and compliance requirements. All audio data is processed in real time and never stored or used for training.
SOC 2 Type II
Audited controls for security, availability, and confidentiality
HIPAA Eligible
BAA available for healthcare applications handling PHI
GDPR Compliant
Data processing agreements and EU data residency options
Data Residency
Regional processing for compliance requirements
High Availability
Multi-region infrastructure with custom SLAs for enterprise workloads
SSO & RBAC
SAML SSO, role-based access, and audit logging
Last updated: July 3, 2026