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.

Speech-to-Text

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 docs
Text-to-Speech

TTS 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 docs
Avatar / Visemes

Driving 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 guide

How 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 backend field 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.

bash
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.wav

Full 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.