Ukti Voice console

Every call from this page goes same-origin to /v1/… on this host. Your key stays in this browser.

Your API key

Paste an API key (uk_live_…). It is stored only in this browser's localStorage and sent as a bearer token, or as api-subscription-key on the WebSocket.

Names for one call none

The names this caller is likely to say: the customer and family, the advisor, the funds and banks on the account. Add them below; they are sent with every test on this page and can be stored for a call_id (two hours) so live transcription, spelling correction and speech all use the same list. In production Bachatt's backend sends this list when the call starts. Up to 50 names per call; nothing crosses to another API key. How it works.

typecorrect spellingother spellingspronounced asimportance
Advanced: the JSON this form sends (for developers; paste to import)

Transcribe a recording

One clip at a time over HTTP. Record from the microphone or upload a file (up to 60 s, 25 MB).

0.0 s
raw response

Generate speech

Birbal over HTTP. Hindi and English are owned voices; other languages fall back to the vendor.

raw response

Transcribe live speech idle

Streaming over the WebSocket /v1/speech-to-text/realtime: 100 ms PCM16 frames, the gateway's VAD segments utterances, partials arrive while you speak, one final per utterance with confidence and engine.

0.0 s
To transcribe the other people on a Google Meet, choose A browser tab, pick the Meet tab in Chrome's picker and tick Share tab audio. Your microphone alone never contains them: the browser's echo cancellation removes speaker output from the mic signal on purpose. With both and speakers = "Only me", the other side is dropped by design; choose "Everyone, labelled" to keep both with S1/S2 labels.
session events

API keys checking…

Keys are issued, renamed and revoked on their own page. Admins sign in with Google (top right); a key is shown once, at creation, and revoked keys stop within ten seconds on every gateway replica.

Recognition settings not loaded

How live transcription decides what is speech and whose voice to keep. Saved per account in the durable store; every new session of that account starts from these values (a session can still override them in its URL). Admins can edit any account; an API key can edit its own.

Higher sensitivity threshold = fewer false triggers from noise but soft speech may be missed. Narrator lock enrols whoever speaks first for at least 1.5 s and drops later utterances whose voice does not match; it cannot separate two people talking at the same instant.

Company-wide vocabulary sign in required

Tenant-wide terminology for an account (your company, products, funds), applied to every request of that account after the call-scoped entities: at most 10 of the 30-entity shortlist. Customer names belong in the call context, not here. Stored in the durable store (Azure Managed Redis, TLS); entity text is never logged. Guide.

GPU on demand …

The speech models run on one A10 slice that switches itself off after 30 minutes without a request, wakes on demand, and stays on during the warm windows set for the hours users are active. Status, the day's schedule and the editor live on their own page.

About this console

Audio in
Microphone audio is captured raw (browser noise suppression and gain control are off, echo cancellation stays on so speaker playback does not feed back), downsampled to 16 kHz mono and sent as WAV (REST) or PCM16 (WebSocket), so the playback is what the model heard. Noise and speech decisions are made by the gateway's neural VAD, tunable under Recognition settings. Uploads are capped at 25 MB and 60 s.
Engines
The engine shown with every result names the model that answered: ukti:prakrit-v0 and ukti:birbal-v0 for Hindi and English; vendor:sarvam for Bengali, Marathi, Tamil and Telugu until the owned models speak them (the owned STT decodes those in shadow).
Vocabulary
Spelling hints are plain biasing terms for quick tests. Call context is the customer-scoped list Bachatt's backend should send per call. Account vocabulary is tenant-wide terminology managed by admins. Order in the decoder's hotword budget: call entities, then account terms, then hints.
Storage
API keys and account vocabulary live in the durable store (Azure Managed Redis, TLS, no eviction, persistence); rate limits and call-scoped lists live in the in-cluster Redis with automatic expiry. Entity text is never logged; audit records carry ids and counts.
Privacy
Nothing on this page is stored server-side beyond the API's normal metering. The key never leaves this browser except in the request to this host.
Status
The badge in the top bar reads /readyz on load. Green means STT, TTS, the vendor fallback and both stores answer; store_url in that JSON names the durable store.