Overview
xAI provides text-to-speech synthesis via an HTTP API with support for multiple languages and audio encoding formats.xAI TTS API Reference
Complete API reference for all parameters and methods
Example Implementation
Complete example with interruption handling
xAI Documentation
Official xAI TTS API documentation
Installation
Prerequisites
- xAI Account: Sign up at xAI
- API Key: Generate an API key from your account dashboard (also works with Grok API keys)
Configuration
XAIHttpTTSService
xAI API key for authentication.
xAI TTS endpoint URL. Override for custom or proxied deployments.
Output audio sample rate in Hz. When
None, uses the pipeline’s configured
sample rate.Output audio encoding format. Supported formats:
"pcm", "mp3", "wav",
"mulaw", "alaw".Optional shared aiohttp session for HTTP requests. If
None, the service
creates and manages its own session.Settings
Runtime-configurable settings passed via thesettings constructor argument using XAIHttpTTSService.Settings(...). These can be updated mid-conversation with TTSUpdateSettingsFrame. See Service Settings for details.
| Parameter | Type | Default | Description |
|---|---|---|---|
model | str | None | Model identifier. (Inherited from base settings.) |
voice | str | "eve" | Voice identifier. (Inherited from base settings.) |
language | Language | str | Language.EN | Language code. (Inherited from base settings.) |
Supported Languages
xAI TTS supports 20 languages. Use theLanguage enum from pipecat.transcriptions.language:
- Arabic (Egyptian, Saudi, UAE):
Language.AR,Language.AR_EG,Language.AR_SA,Language.AR_AE - Bengali:
Language.BN - Chinese:
Language.ZH - English:
Language.EN - French:
Language.FR - German:
Language.DE - Hindi:
Language.HI - Indonesian:
Language.ID - Italian:
Language.IT - Japanese:
Language.JA - Korean:
Language.KO - Portuguese (Brazil, Portugal):
Language.PT,Language.PT_BR,Language.PT_PT - Russian:
Language.RU - Spanish (Spain, Mexico):
Language.ES,Language.ES_ES,Language.ES_MX - Turkish:
Language.TR - Vietnamese:
Language.VI
Usage
Basic Setup
With Custom Language
With Custom Encoding
With Shared HTTP Session
Updating Settings at Runtime
Voice settings can be changed mid-conversation usingTTSUpdateSettingsFrame:
Notes
- HTTP-only: This service uses xAI’s HTTP API. The service requests raw PCM audio by default, which matches Pipecat’s downstream expectations without extra decoding.
- Encoding options: When using non-PCM encodings (
mp3,wav,mulaw,alaw), ensure your audio pipeline can handle the selected format. - Automatic session management: If you don’t provide an
aiohttp_session, the service creates and manages its own session lifecycle automatically.