Source: https://ailoot.ai/models/en/x-ai-grok-voice-tts-1-0/
Canonical: https://ailoot.ai/models/en/x-ai-grok-voice-tts-1-0/
Language: en

# SpaceXAI: Grok Voice TTS 1.0

[Markdown](https://ailoot.ai/models/en/x-ai-grok-voice-tts-1-0/index.md) · [JSON](https://ailoot.ai/models/en/x-ai-grok-voice-tts-1-0/facts.json)

## [SpaceXAI: Grok Voice TTS 1.0](https://ailoot.ai/models/en/x-ai-grok-voice-tts-1-0/)

Grok Text to Speech turns written text into expressive audio with selectable voices, inline performance cues and multiple output codecs. The documented producer family supports complete and streaming speech, plus optional character-level timings.

- [**Ailoot Ultra · Text to speech** `POST /v1/audio/speech` `x-ai/grok-voice-tts-1.0`](https://ailoot.ai/models/en/x-ai-grok-voice-tts-1-0/#method-0)

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

Grok Text to Speech is the Grok voice family’s text-to-audio capability. The manufacturer documents expressive built-in speakers, inline vocal cues and output formats suited to media playback or telephone audio. Its input is the transcript to be spoken, together with voice and language choices. The resulting recording is speech from that transcript; speech recognition and conversational speech-to-speech models have separate tasks.

#### Voice, language and spoken text

The producer catalogue gives each voice a delivery profile. Ara is warm and friendly, Eve is upbeat with a British accent, and Rex is described as clear and confident. Voice and language are independent in the documented family: built-in speakers can use each supported language choice. The guide lists twenty language-code options, including regional variants, and also supports automatic language detection. Alongside built-in speakers, the producer documents reusable custom voices created from a reference recording and selected by voice\_id for complete or streaming synthesis. Reference audio may be up to 120 seconds; 90–120 seconds of clean, single-speaker speech is recommended to capture delivery and intonation. Keep the reference, created voice profile and generated recording as separate artifacts, and match the reference performance to the intended script.

Prepare the final spoken wording, preserving the intended language of names and quoted passages. For a narrated guide, a useful line is: “Choose a topic, listen to the short introduction, and open the section you want to explore.” If a brand name or specialist term needs a particular reading, the manufacturer’s replacement controls can supply a respelling or IPA pronunciation without changing the displayed source text. A separate text-normalisation option converts written numbers, abbreviations and symbols towards their spoken form.

#### Performance cues

Inline tags place an event at a particular point, such as a pause, laugh, sigh or breath. Wrapping tags apply delivery to a complete phrase, for example whispering, emphasis or a slower passage. Put the cue where the meaning calls for it and keep the words readable. The guide recommends complete-phrase style spans and punctuation rather than a stack of unrelated tags.

For an expressive character line, prepare the spoken sentence and the performance shift together. For an explanation, retain a clear rhythm that helps the listener follow the steps. The documented speech-rate range is 0.7 to 1.5, with 1.0 as normal delivery. A speed choice changes the spoken pace; it does not change the words the application should communicate.

#### Audio and timings

The producer documents MP3, WAV, raw PCM, mu-law and A-law output. Supported sample-rate choices span 8 kHz to 48 kHz, with specific listed rates between those values. Its default MP3 configuration is 24 kHz at 128 kbit/s. Use an audio representation that the intended player, editing stage or telephone path can interpret.

Optional character timings associate the returned character sequence with start and end times. Without pronunciation replacements, that sequence mirrors the input; replacements can change it to the spoken text. They can support a read-along display, highlighting or alignment with a visual performance. In the complete-response workflow, requesting timings changes the output into an envelope containing encoded audio and timing data. Treat the timings and audio as a paired result, especially when text normalisation expands a written symbol into several spoken words.

#### Complete or streaming generation

The manufacturer offers a complete-request path and bidirectional streaming, in which text fragments arrive and audio chunks return as the utterance is generated. It documents a 60,000-character limit for a complete request and for an individual streamed text fragment. Completing or clearing an utterance has an explicit role in the streaming workflow.

For longer narration, choose coherent passage boundaries and retain the script with each result. For interactive playback, distinguish text sent for synthesis from audio already heard by the listener. The useful deliverable is a voiced script with intentional performance cues, an appropriate audio format and timing data when the application needs it. Keep the script, selected voice, performance cues and output settings with the audio so later revisions preserve the intended delivery.

**Ailoot Ultra · Text to speech** `POST /v1/audio/speech` `x-ai/grok-voice-tts-1.0`

[`x-ai/grok-voice-tts-1.0`](https://ailoot.ai/models/en/#m=x-ai%2Fgrok-voice-tts-1.0&route=Ultra&caller=x-ai%2Fgrok-voice-tts-1.0&fmt=speech)

SpaceXAI /`x-ai/grok-voice-tts-1.0`

### Overview

Grok Text to Speech turns written text into expressive audio with selectable voices, inline performance cues and multiple output codecs. The documented producer family supports complete and streaming speech, plus optional character-level timings.

Accepted inputs

Text

Results

Audio

### Available in Ailoot · inputs & methods

**Ailoot Ultra · Text to speech** `POST /v1/audio/speech`

Input types

`text`

Output types

`audio`

Output format

mp3

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits x-ai/grok-voice-tts-1.0 | Default— |
| Field`input` | Type`string` | RequirementRequired | Values & limits Minimum length: 1 Maximum length: 15,000 Unit: Unicode characters | Default— |
| Field`voice` | Type`string` | RequirementRequired | Values & limits eve, ara, rex, sal, leo | Default— |
| Field`response_format` | Type`string` | RequirementRequired | Values & limits mp3 | Default— |

Input material combinations

**text\_to\_speech** · Required: input

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, input, voice, response\_format |
| Parameter`voice_ids` | Contracteve, ara, rex, sal, leo |
| Parameter`response_format` | Contractmp3 |
| Parameter`max_input_characters` | Contract15000 |
| Parameter`other_options` | Contractfalse |
| Parameter`input` | Contractexact UTF-8 text; Unicode character count without normalization |
| Parameter`material_types` | Contracttext |

Lifecycle: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · actual returned task\_id or media library record

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

Select exact voice from this model profile.

Input characters and audio seconds are different meters.

### Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode

Not specified When fast mode is selected

Flex mode

Not specified When flex mode is selected

Maximum reasoning effort

Not specified When maximum reasoning effort uses the default adjustment

#### Ailoot rates

#### Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

| Configuration | Rate schedule | Billable quantity | Billing unit | Charge |
| --- | --- | --- | --- | --- |
| ConfigurationBase token rates | Rate scheduleBase rate | Billable quantity— | Billing unit— | Charge Input · Input tokens **—** / 1K tokens Output · Output tokens **—** / 1K tokens Input · Cache read **—** / 1K tokens Input · Cache write **—** / 1K tokens Input · Cache write, 1 hour **—** / 1K tokens |
| ConfigurationUltra | Rate schedule— | Billable quantityEach Unicode code point counts as one character, including Han characters. | Billing unitper 1000 input character | Charge Input · input character **$0.03** per 1000 input character |

#### Reference tariff details

Model-level reference schedules do not change method selection, quotes or charges. Active charges use the selected Ailoot method rates.

SpaceXAI: Grok Voice TTS 1.0

#### Prices by configuration

| Configuration | Billing conditions | Charge |
| --- | --- | --- |
| ConfigurationSpaceXAI: Grok Voice TTS 1.0 · Default configuration | Billing conditionsDefault configuration | Charge Input · Input characters **$0.00003** per input character |

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. [How reservation and settlement work →](https://ailoot.ai/docs/en/billing/reserve/)

### Example requests

#### Ailoot Ultra · Text to speech

curl

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}"
export AILOOT_VOICE_ID
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "x-ai/grok-voice-tts-1.0", "input": "Good afternoon! This is a short voice take."}')
voice=os.environ["AILOOT_VOICE_ID"]
allowed=json.loads('["eve", "ara", "rex", "sal", "leo"]')
if voice not in allowed: raise SystemExit("Choose an accepted voice ID from this exact model profile")
p["voice"]=voice
p["response_format"]="mp3"
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o speech.mp3
```

### Receive and save results

#### Ailoot Ultra · Text to speech

mp3

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

Other content reads

Media libraryTask statusAsset details

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-assets.json
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_MEDIA_TASK_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_MEDIA_TASK_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/tasks/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-task.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-task.json").read_text())))
PY_RESULT
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}"
export AILOOT_ASSET_ID
resource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_ASSET_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/media/assets/$resource_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o media-asset.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("media-asset.json").read_text())))
PY_RESULT
```

##### Keep all completed results

Keep every complete returned response, file and content part.

Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.

##### If the original response needs checking

Retain original operation\_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route.

Response fields

| Field | Type |
| --- | --- |
| Field`binary audio` | Typebytes |
| Field`response headers` | Typeheaders |

Errors and next steps

| Response | Condition | Next step |
| --- | --- | --- |
| Response400 · `invalid_request_error` | ConditionInvalid required fields, material representation or parameter value | Next stepCorrect the indicated fields before a new creation request. |
| Response`server_error` | ConditionThe returned response says the operation or result requires a check | Next stepKeep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request. |

### Aliases

#### Model aliases

**Ailoot Ultra** [`x-ai/grok-voice-tts-1.0`](https://ailoot.ai/models/en/#m=x-ai%2Fgrok-voice-tts-1.0&route=Ultra&caller=x-ai%2Fgrok-voice-tts-1.0&fmt=speech)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`x-ai/grok-voice-tts-1.0`](https://ailoot.ai/models/en/#m=x-ai%2Fgrok-voice-tts-1.0&route=Ultra&caller=x-ai%2Fgrok-voice-tts-1.0&fmt=speech)

FAQ · SpaceXAI: Grok Voice TTS 1.0

What inputs and results are available?

`POST /v1/audio/speech` · `x-ai/grok-voice-tts-1.0`: `text` → `audio`

Which fields does the request use?

`POST /v1/audio/speech` · `x-ai/grok-voice-tts-1.0`: `model`, `input`, `voice`, `response_format`

What limits apply?

`POST /v1/audio/speech` · `x-ai/grok-voice-tts-1.0`: `input.maximum_length`: `15000`

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

## The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

## Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription

Choose a discounted plan for your regular requests.

Promo code: up to 50% off

Enter your code at checkout. The price updates to reflect the current promotion.

Spending in your history

The model, tokens and amount are recorded for each request.

[Choose a subscription](https://ailoot.ai/docs/en/billing/subscriptions/) · [View model prices](https://ailoot.ai/models/en/)

## Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application

Add text, image, video and audio generation to paid features in your service.

Reseller licence

Send a description of your project and how you provide access. Request written terms for use and resale.

Documents on the website

The service offer, licence agreement and data processing policy are available before you connect.

[Request a reseller licence](mailto:support@ailoot.ai) · [Service offer and licence agreement](https://ailoot.ai/legal/offer?lang=en)

## Ailoot · The company and its project portfolio





Ailoot combines established operating experience, a large client base, stable service and ongoing KPI control.





The company and its project portfolio: millions of customers; monthly sales in the billions.





Ailoot brings that operating experience to API access for AI features in customer products, agents, applications and automations.
