Camlin Speech / Documentation
Build with Camlin Speech
One service, three capabilities: Australian-English speech recognition, first-party voice synthesis, and a viseme track that puts a face on the voice. Everything is plain REST plus one Socket.IO stream — no SDK required to get started, and every example in these docs was run against the live API before it was written down.
STT user guide
WAV in, JSON transcript out — plus the live streaming session with committed/tentative word semantics, and the tenant lexicon that keeps Australian names spelled right.
Open STT docsTTS user guide
Australian studio voices, inline speech markup for pauses and spelled-out codes, and per-request pace and pause controls. Audio comes back as WAV with a short-lived fetch URL.
Open TTS docsDriving an avatar
Every synthesis response can carry an ARKit-52 blendshape track that makes an avatar speak with the audio. How the frames work, how to stay in sync, and how to bring your own rig — or use ours.
Read the avatar guideHow the pieces fit
Everything lives under two route families on one host: /api/v1/asr/* for recognition and /api/v1/tts/* for synthesis. A few opinions baked into the design, so you do not have to discover them the hard way:
- Routing is our problem, not yours. The service picks the fastest healthy path and falls back behind the API contract. The
backendfield in responses is a diagnostic, not something to branch on. - Vocabulary is data, not code. Per-tenant lexicons carry your names, agencies, suburbs, and product terms, and apply automatically to every keyed recognition call. Update the lexicon; the next call benefits.
- The viseme track is a first-class product. Lip-sync frames ride on the synthesis response in ARKit blendshape order, aligned to the audio timeline — including across markup-inserted pauses. It has its own scope and metering because avatar customers use it independently of raw TTS volume.
- Sovereignty is a feature. Audio is processed in our Sydney region, and the same stack can be deployed on customer infrastructure when the workload demands it.
Camlin Speech is one product of the Camlin Connect platform — the hosted avatar the viseme track was built for lives there too.
Keys, usage and logs
Every direct API call needs a key. If your organisation has a Camlin Connect workspace, an owner or admin creates cs_live_ and cs_test_ keys in the Architect console under Speech, where the same section shows usage by product and the per-request log for your tenant. Plans are upgraded in Architect → Administration → Billing. No workspace yet? Request access and we will set one up, or issue a pilot key directly.
Your first request
Recognition takes raw WAV bytes and returns JSON. Nothing else is required to get a transcript back.
curl -X POST "$CAMLIN_SPEECH_URL/api/v1/asr/recognize" \
-H "Content-Type: audio/wav" \
-H "x-camlin-asr-language: en-AU" \
--data-binary @sample.wavFull parameters, error codes and tenant lexicons are on the STT reference. For synthesis, start at the synthesize endpoint; for lip-sync and avatars, go straight to Driving an avatar.