Skip to content

Providers

tts-1

The xAI text-to-speech model tts-1, with every setting it accepts, the allowed value and the default.

xAI's speech model. It accepts a speaking rate, a latency/quality trade-off and an audio bit rate. Inline speech tags and wrapping tags are inserted automatically under expressive mode.

Reached through the LiveKit Inference gateway.

The assistant's language is honoured and reaches the provider normally.

Settings#

Every setting is optional. Leave one out and OnCore sends nothing for it, so the Default applies. If invalid is what the provider does with a value it does not accept.

SettingTypeAllowedDefaultIf invalid
speedfloat0.7 to 1.51.0Refused, call fails
optimizeStreamingLatencyint0, 1 or 20Refused, call fails
bitRateint32000, 64000, 96000, 128000 or 192000provider defaultRefused, call fails

Overriding on a single call#

Return this from your assistant-request webhook to change these settings for one call only. The stored voice is left untouched, and the next call starts from it again.

json
{
  "data": {
    "overrides": {
      "voice": {
        "settings": {
          "speed": 1,
          "optimizeStreamingLatency": 0,
          "bitRate": 128000
        }
      }
    }
  }
}

Send only the keys you want to change: anything you leave out keeps the value the assistant already has. Add "id" beside "settings" to swap the whole voice for another one from your catalogue at the same time.

optimizeStreamingLatency: xAI describes 0 as best quality, 1 as a small quality trade for a faster first syllable and 2 as a larger one. The value is range-checked, but the effect on time-to-first-audio was too small to measure on a short sentence, so treat the trade-off as xAI's claim rather than something to plan latency around.

xAI also documents text_normalization. The gateway accepts it without error but does not declare it as an option, so do not expect it to change anything.

Note the contrast with xAI speech-to-text, which refuses any key it does not recognise: on the text-to-speech side an unrecognised key is tolerated rather than fatal, so the same typo that ends a call on the transcriber quietly does nothing on the voice.

Next steps#