Skip to content

ADR-v2-044 — Two-Way Live Interpreter

Status: Accepted (2026-07-02) · Wave F Context links: [[adr-v2-014-live-translation]] (one-way sibling), [[adr-v2-039-acoustic-profiles]] (polyglot pair), [[adr-011]]

Context

The Wave F research (#10) proposes a face-to-face interpreter mode: two speakers of different languages take turns; YazSes detects each turn's language and translates into the other, speaking or displaying the result. Anchors: SeamlessM4T v2 / Meta's on-device speech-to-speech, Whisper translate (already wired for Live Translation, ADR-v2-014), the existing TTS path. Distinct from Live Translation (one-way dictation→English) — this alternates direction per turn.

Decision

Add an opt-in Two-Way Live Interpreter: [interpret] enabled=false, pair="en-es". The pure core routes turns: parse_pair("en-es")("en","es"), and route_turn(detected_lang, pair) returns the (source, target) direction for a turn (or None when the detected language is outside the pair). The heavy S2S/translation model reuses the Whisper translate path + TTS, lazy-loaded. OFF by default.

Consequences

  • Extends one-way translation into alternating two-way interpreting; reuses translate + TTS.
  • Pure pair-parsing/turn-routing → fully testable with no model.
  • Privacy (ADR-011): fully offline; nothing leaves the machine.
  • Caveat: LID errors misroute a turn → route only within the configured pair, None otherwise; off by default.