Prepare your voice embed
Use a catalog voice in your existing application. This kit prepares buffered voice turns and a website snippet. It does not create a dashboard persona, fund an account or prove live speech and billing.
Download the integration source kit. Keep its directory structure; its server adapter imports the included helpers. No package installation or new voice service is required.
Install in your existing app
- Open voice setup, choose a catalog persona and supported languages, and download the configuration. Starter and Standard can combine English and Hindi. The assistant label names the widget; it does not change its spoken identity.
- Store the configuration in your existing tenant configuration. This download is a local draft; it is not saved to a customer account automatically.
- Import
createVoiceProxyfromintegrations/widgets/voice/proxy.mjs. Mount it on POST/api/voice-assistant/sessionand POST/api/voice-assistant/turn. Preserve the standard Request body, Origin, authenticated visitor and abort signal. - Supply trusted callbacks:
authorizeVisitor(request)returns an authorized tenant and visitor;getPersona(tenantId, personaId)returns that tenant's configuration;getApiKey(tenantId)resolves its production key inside your server. Check consent, paid eligibility, rate limits and the authorized call budget there. Browser-supplied tenant headers are not identity. - Provide at least 32 bytes of private session signing material. Keep the adapter unarmed until account configuration, provider capability and the call budget are verified. Never enter production keys in the snippet or browser storage.
- Copy
vedika-voice-embed.mjsandrandom-id.mjsfrom the included browser helpers to/assets/voice/in your app. Copy the one generated snippet into your page. Both assets and the voice endpoint use your website origin.
Visitor flow
The visitor presses Connect, chooses a language and records one question. Stop and send submits it; recording stops after 30 seconds. A returned audio reply has a Play control. The two-minute session is bound to your tenant, visitor, persona and origin, and stays in widget memory.
Cancel discards unsent audio and aborts the browser request. A submitted turn may already have completed on the server; check its usage receipt before retrying. A browser abort alone does not prove a refund.
Verify before enabling calls
Test English and Hindi separately. Check actual spoken audio and the returned cost. Use the widget's Request ID to find the same turn in dashboard Request Logs and verify its API key and cost. Quota refusal remains an error. Text-only output is shown as unavailable speech; absent cost metadata remains unknown.
The five catalog minute prices are indicative estimates. Current account pricing describes per-request billing. Confirm account pricing and final usage receipts; this preparation does not establish billed-per-minute rates or failed-call refunds.