System · the voice, it hears and speaks

Larynx

Speech in, speech out.

Swappable transcription and synthesis so an interview feels like a conversation, not a form. Local or cloud, chosen per request.

In active development

How it flows

Audio in
Speech-to-text
Cortex
Text-to-speech
Audio out
  • Pluggable STT and TTS providers, local ↔ cloud.
  • One block with its own lifecycle.
  • Steered per request by Thalamus, never hard-wired.

How it fits

Wraps Cortex for Lens: hears the question, speaks the cited answer.

Under the hood

Swappable ears and voice, behind named profiles.

Two legs, transcription and synthesis, each a pluggable provider. A profile names the whole chain, and the broker picks one per request.

The cascade

Audio in
Speech-to-text
Larynx
Cortex answer
via broker
Text-to-speech
Larynx
Audio out

Larynx does the two ends; the broker slots Cortex’s grounded answer between them. A live full-duplex bridge exists too, where the engine calls Cortex as a tool.

Speech-to-text

OpenAIgpt-4o-transcribeElevenLabsscribeWhisperlocal

Text-to-speech

OpenAIgpt-4o-mini-ttsElevenLabseleven v3 / flashKokorolocal · EN

Profiles · named chains

cloud-fastcloud-qualitylocalrealtime-minirealtime-2elevenlabs-agent
Swappable STT and TTS providers behind one interface: cloud or on your own GPU, chosen per request.
Profiles are named chains: pick “cloud-fast”, “cloud-quality” or “local” and the whole voice swaps, no redeploy.
Deliberately dumb. The broker steers everything per request (profile, voice, language, speed); Larynx reads no control plane itself.
Full-duplex live mode delegates deep questions to Cortex via a cortex_ask tool, so even realtime voice stays grounded. And Kokoro refuses German rather than fake it.

The rest of the constellation

This is one part of a system built to keep one promise: every answer is grounded and permission-aware, or it doesn’t come at all.