Activation seam
“What starts a burst” is a contract. A key and an EMG squeeze already implement it; a wake word, a switch or a BCI would be a third — without touching the pipeline.
{#- Landing page template for the YazSes docs site (selected by `template: home.html` in docs/index.md's front matter). The full-width sections below render above the ordinary Markdown body, which is kept as-is: it carries the JSON-LD, the install tabs and the FAQ that search and answer engines already index. Everything here is first-party — no third-party script, font or image, because the site promises that a visitor's request goes nowhere else (see the material/privacy note in mkdocs.yml). Behaviour lives in docs/assets/landing.js and styling in docs/assets/landing.css; both no-op on every other page. Every figure quoted here is a measurement published on docs/architecture.md or docs/benchmarks.md. Do not add a number that is not. -#} {% extends "main.html" %} {% macro ic(name) -%} {%- endmacro %} {% block tabs %} {{ super() }}
Open source · Apache-2.0 · runs on your CPU
Hold a key, speak, release — YazSes transcribes your words on-device with faster-whisper and types them into whatever app has focus. No cloud. No API key. No subscription. Nothing leaves your machine.
bash <(curl -fsSL https://raw.githubusercontent.com/MSKazemi/yazses/main/install.sh)
brew tap MSKazemi/yazses && brew trust MSKazemi/yazses && brew install --cask yazses
winget install MSKazemi.YazSes
pipx install yazses
base.en, CPU only, no GPU
Architecture
Every time you hold the key, your audio flows through a fixed pipeline that never touches the network. Hover or tap a stage — the pulse shows a burst moving through it.
Hold-to-talk starts a burst; releasing ends it. The trigger can also be an EMG muscle sensor over USB serial — a hands-free option.
src/yazses/platform/emg/
The spine is four states. Meeting capture, read-back, the SSH remote path and enrollment are modes you enter deliberately over IPC — and return from.
“What starts a burst” is a contract. A key and an EMG squeeze already implement it; a wake word, a switch or a BCI would be a third — without touching the pipeline.
SttEngine made Parakeet a config change, not a fork. Anything that turns audio into
words plugs in here.
Every OS difference is a Protocol. That is what makes Android a port rather than a rewrite.
Read the full architecture {{ ic("arrow-right") }} Browse the diagrams {{ ic("arrow-right") }}
The future
Four eras. Each is a promise kept before the next begins — and every step stays offline, encrypted on-device, and off until you turn it on.
{{ status }}
{{ tag }}
Cloud escalation is fully specified and stays unimplemented, so the offline promise can never erode by increments. Voiceprints, the learning corpus and third-party capture may never leave at all.
ADR-019 {{ ic("arrow-right") }}Third-party plug-ins would sit on the hot path with your microphone, transcript and keyboard. They stay out until a real isolation boundary exists.
ADR-018 {{ ic("arrow-right") }}Personal speech adapters — including for dysarthria, ALS and Parkinson’s — ship only after a measured accuracy win on held-out data. Ideas don’t ship on their own strength.
Future work {{ ic("arrow-right") }}The full roadmap {{ ic("arrow-right") }} The research behind it {{ ic("arrow-right") }}
Documentation
Guides for the first five minutes, references for the fiftieth hour, and design records for every decision in between.
{{ desc }}
Free, open source, and fully offline — on the machine you already own.
Questions or feedback? mohsen.seyedkazemi@gmail.com