Skip to main content

xAI realtime conversation, TTS, and STT providers for Kestrel Sovereign

Project description

kestrel-voice-xai

xAI voice providers for Kestrel Sovereign:

  • Realtime speech-to-speech over the xAI Voice Agent WebSocket API
  • Text to speech, including streaming MP3, WAV, PCM, μ-law, and A-law output
  • Batch and streaming speech to text
  • Runtime discovery of voice models, built-in voices, and custom voices
  • Governed Kestrel function tools with atomic multi-tool continuation

Install the package beside kestrel-feature-voice and set XAI_API_KEY. Providers are discovered through Python entry points; the feature package does not import this distribution directly.

uv pip install git+https://github.com/KestrelSovereignAI/kestrel-voice-xai.git
export XAI_API_KEY=...

All three roles share the operator-facing [voice.xai] configuration. Model and voice IDs are discovered at runtime; selecting no realtime voice lets xAI use its current provider default.

[voice.xai]
language = "auto"
# model = "a-versioned-model-from-/v1/models"  # optional production pin
# keyterms = ["Kestrel", "your product name"]

# Provider-native tools are intentionally opt-in. Kestrel function tools do
# not go here; they remain governed by the Sovereign dispatcher.
native_tools = ["web_search", "x_search"]

Provider-native web_search, x_search, file_search, and remote mcp tools are supported by xAI but disabled by default. Enable only the specific native tool definitions intended for the agent in the provider configuration. Kestrel function tools continue to execute through the Sovereign governed dispatcher.

The voice UI receives the provider's live built-in and team custom-voice catalog, persists voice choices by provider, and uses an xAI ephemeral token for direct browser WebSocket sessions. Long-lived API keys stay server-side.

Upstream contracts: Voice Agent API, ephemeral tokens, text to speech, speech to text, and custom voices.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kestrel_voice_xai-0.1.1.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kestrel_voice_xai-0.1.1-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file kestrel_voice_xai-0.1.1.tar.gz.

File metadata

  • Download URL: kestrel_voice_xai-0.1.1.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for kestrel_voice_xai-0.1.1.tar.gz
Algorithm Hash digest
SHA256 80f8ba9f08567981d4b43e83f9980c2682136a52099326f675f8c04315e6a502
MD5 25d853eb799a0fc844f14186b89bd6e9
BLAKE2b-256 f8a5222a221bca499f08398c752724bacad83a2785918052d39c9474709868e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_voice_xai-0.1.1.tar.gz:

Publisher: publish.yml on KestrelSovereignAI/kestrel-voice-xai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kestrel_voice_xai-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for kestrel_voice_xai-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bbad29bcca9d6decd0827596b8694dfb936d634f8cdbb4e1671f1c06cc9de0af
MD5 5ac0feba0848f2469fd583a858f372fa
BLAKE2b-256 94358d5ca082edb8b99201b7f87223f294d03f83e592d490a58820022ffb0207

See more details on using hashes here.

Provenance

The following attestation bundles were made for kestrel_voice_xai-0.1.1-py3-none-any.whl:

Publisher: publish.yml on KestrelSovereignAI/kestrel-voice-xai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page