AI Signs — Sign-Language Translation Service
- Area: Intelligence
- Path:
services/ai/signs - Kind: Sign-language translation engine (text/speech → glosa sequence + animation timeline), gRPC-first
- Status: Phase 0 — design (2026-05-23 rename of former
services/ai/libras)
Role in the stack
signs is the backend translation engine for the Koder Hand product (products/horizontal/hand/). It accepts pt-BR or en-US text (and eventually speech via services/ai/voice) and returns a sign-language glosa sequence + per-token animation timeline. The engines/sdk/koder_hand_kit SDK consumes that timeline and drives a 3D avatar that signs in real time inside any Koder UI.
The module was renamed from services/ai/libras on 2026-05-23: the engine architecture is corpus-agnostic, and Libras (Língua Brasileira de Sinais) is the first corpus — not the module identity. Future corpora (ASL, BSL, LSF) reuse the same pipeline with different training data and animation banks; that future requires no second rename.
Boundary vs neighbors
services/ai/translateis natural-language translation (pt-BR ↔ en-US etc.) — separate domain; sign language is a visuo-spatial modality, not a translation between spoken/written languages.services/ai/voiceprovides ASR for the optional speech input path (deferred to v1 —SpeechServicestub in proto today).services/foundation/idprovides bearer-token session auth and theaccessibility.hand_avataruser preference that gates whether the SDK fetches anything.engines/sdk/koder_hand_kitis the only consumer surface (renders glosa + timeline into the Hand avatar).
Architecture (4-stage hybrid neural-symbolic pipeline)
[ pt-BR or en-US text ]
│
▼
§1 Normalize (Go) language-specific spell + abbrev rules
§2 Semantic parse (Py) Gemma 4 + LoRA via gRPC
§3 Glosa generation HYBRID: dictionary (rules) ⊕ ML — confidence-routed
§4 Animate timeline (Go) glosa → keyframe timeline (durations + transitions)
│
▼
[ glosa sequence + animation timeline ] → koder_hand_kit renders avatarFull architecture: signs-RFC-001-architecture-overview.md.
Corpora roadmap (vN)
| Corpus | Source language | Status | Gate |
|---|---|---|---|
| Libras (Brazilian Sign Language) | VLibrasBD (CC BY-SA 4.0, UFPB) + paid annotation v2+ | v0 (first) | shipping |
| ASL (American Sign Language) | TBD | vN (planned) | ≥10k MAU projected US deaf market |
| BSL (British Sign Language) | TBD | deferred | demand-driven |
| LSF (Langue des Signes Française) | TBD | deferred | demand-driven |
Same pipeline + different corpus + different animation bank for each. No code rename required; only new training run + asset bundle.
Primary couplings
| Producer | Relationship |
|---|---|
services/foundation/id |
Session auth (bearer token from Koder ID); rate-limit per token role |
services/ai/voice |
ASR for streaming speech input (v1, deferred) |
| Consumer | Relationship |
|---|---|
engines/sdk/koder_hand_kit |
Only direct consumer; calls Translate, Animate, Health gRPC |
products/horizontal/hand |
Indirect consumer via the SDK; bundles the SDK into every Koder UI |
Compliance
- NF6 — self-hosted only per
signs-RFC-001. No external API calls. VLibras (UFPB) is not a runtime dependency; trained from scratch using their open corpus. - LGPD — translation requests stateless; content not logged with text body; only opt-in counter telemetry per
specs/errors/reporting.kmd. - VLibrasBD attribution (CC BY-SA 4.0) included in
/aboutendpoint and corpus README. - Lei nº 10.4362002 + Decreto 5.6262005 — Libras compliance for the Koder Hand product (cited in product landing and legal copy).
RFC and bootstrap
- RFC:
signs-RFC-001-architecture-overview.md— ratified 2026-04-29; renamed 2026-05-23 - Bootstrap ticket:
services/ai/signs/backlog/done/001-gateway-mvp.md - In-flight:
services/ai/signs/backlog/pending/{002..005}(ML worker spike, corpus ingest, MLflow integration, signs.koder.dev deploy)
Self-hosted-first analysis (5 gates)
| Gate | Status | Notes |
|---|---|---|
| G1 Feature parity | pending | Pre-MVP; baseline = VLibras (third-party we explicitly avoid) |
| G2 Performance | pending | Target NF1: p99 ≤300ms gloss-sequence start, ≤500ms first gesture |
| G3 Stability | pending | Pre-MVP |
| G4 Capability | pending | v0 = rule-based dictionary; ML lands in #002 (Gemma 4 + LoRA on VLibrasBD) |
| G5 Critical-path readiness | pending | Unblocks Koder Hand product MVP; gates accessibility.hand_avatar cross-product |