Sign-end to first audible byte: p50 ~0.6 s
End-to-end latency budget broken down per stage in §13. Adds up to ~600 ms p50, ~900 ms p95.
Sign-end to first audible byte: p50 ~0.6 s, p95 ~0.9 s. No fallbacks. No per-turn relay operated by Signchat. The authoritative spec lives in ARCHITECTURE.md on GitHub — this page is a guided index into it.
Everything below is summarized from §1 Overview and §3 System diagram. If anything here disagrees with the doc, the doc wins.
Signing direction.The Deaf user’s browser captures landmarks with MediaPipe Tasks Vision, classifies them with an onnxruntime-web model, and admits stable tokens into a buffer. On sentence boundaries the browser POSTs tokens plus hearing context directly to OpenRouter, gets a JSON { sentence, … }back, and streams it to ElevenLabs Flash v2.5 over a WebSocket. Returned 24 kHz PCM is mixed with the user’s mic in Web Audio and published as a single LiveKit signchat-voice track.
Captions direction.The same Deaf browser subscribes to the hearing user’s audio, streams it to ElevenLabs voice-to-text, and forwards partials and finals on the LiveKit data channel so both tiles render the same captions in real time. Word-by-word partials in under a second; finals lock into a global transcript strip.
What Vercel does (and does not) do. Vercel hosts the marketing pages, the room UI, and four short-lived credential-mint endpoints. There is no server-side LiveKit bot, no TTS relay, no WSS gateway. Per §15.3, Vercel is not on the per-turn data path.
Each link opens the matching heading in the GitHub rendering of ARCHITECTURE.md (mermaid diagrams render inline there).
These are the load-bearing claims behind the product. Each one points at the section of the doc that defines and defends it.
End-to-end latency budget broken down per stage in §13. Adds up to ~600 ms p50, ~900 ms p95.
LiveKit Cloud, OpenRouter, and ElevenLabs handle every per-turn data path. Vercel is not on it. There is no Signchat-operated relay.
A turn either succeeds through the primary path or surfaces a clear error. Errors stay loud — no fallback voice fakes a failed turn.
The browser never sees a root API key. Per-room credentials are minted by short-lived Vercel routes; provider keys are session-scoped and credit-capped.
The canonical spec is checked in next to the code and evolves with it. If you spot a mismatch between this page and the doc, file an issue — the doc is the source of truth.
Open ARCHITECTURE.md