VIAxVOICE
Mission control

Console

Talk to the model directly — synthesize a line, hear it, watch the amplitude envelope; or speak and read the transcript back. Plus live health, the connect contract, and what's under the hood.

Fleet integration · one voice, many apps live wiring planned

Health

serviceviaxvoice · Modal statechecking… engineKokoro → Piper fallback voices

◇ Manage

endpoint/synthesize · /transcribe authHS256 bearer (aud=viaxvoice) formatsmp3 · wav · ogg proxy/viaxvoice (secret server-side)
The API stays bearer-authed & app-to-app. This Console rides the server-side proxy — the fleet secret never touches the browser.

▶ Synthesize talk to the model

ready

● Transcribe speak to the model

Tap record, say a line, tap again — VIAxVOICE returns the transcript.

idle

♪ Voice pool click to preview

loading…

⌇ How to connect

VIAxVOICE is called app-to-app with a short-lived bearer. Your server mints an HS256 JWT (aud=viaxvoice, scope ∈ tts/stt/health, ~5 min TTL, iss=your app), then:

POST /synthesize {text, voice?, format?} → audio + X-VIAxVOICE-Envelope: {v,rate,peaks}
POST /transcribe {audio_b64}{text}
GET  /voices → the 8 voice labels

In a browser, never ship the secret — put a proxy on your edge (a Cloudflare Function / Supabase edge fn) that holds the secret and mints the bearer server-side, exactly like this Console's /viaxvoice. The envelope rides along on every synth — peaks[floor(t·rate)] drives a speaking avatar, frame by frame. Full contract →