Push-to-talk dictation as a two-way-radio gesture: hold the tangent, speak, release — and the transcript types straight into your cursor. The host needs no software, no admin rights, no driver: it sees an ordinary USB keyboard. And the voice never leaves the house — recognition runs only on a private server. This page shows the concept with its statuses stated honestly: what is decided, what is still being chosen, and the one link of the chain that has actually been measured.
Dictation today means switching focus to a special app, sending your voice to someone else's cloud, or being unable to install anything at all on a locked corporate Windows or an MDM-managed Mac. Three different walls, one gesture behind all of them.
One measure of an architecture is what it lets you delete. This concept closed a sibling project outright: a browser robot that would have driven dictation into a chat window over CDP — selectors, sessions, a moving DOM, a whole class of fragile parts. A device the host mistakes for a keyboard solves the same task with none of them, so the robot is closed, not shelved.
decidedOne gesture, one boundary: everything left of the USB plug is the device's business; the host only ever sees a keyboard that types.
being chosenPure HID keyboard, or a composite gadget (keyboard + USB audio) whose second face is a plain PTT microphone for calls — the composite is possible on paper and untested on this hardware. A software daemon for Linux hosts stays as the v1.5 fallback, not the first build.
This page describes a pattern, not one installation. The device-as-keyboard front never changes; the speech-to-text seat behind it is whatever you plug in — that is the key that opens this whole class of problems.
decidedVoiceBridge on a private server: faster-whisper large-v3-turbo on an RTX 3060, Russian and English auto-detected per utterance. The voice never leaves the house — a principle, not an implementation detail.
The price: you need a box of your own — a GPU machine that is on when you dictate, and yours to maintain.
OpenAI's Whisper API or any compatible endpoint slots into the same seat: the device posts audio, gets the transcript back, and everything else on this page stays exactly the same. No server, no GPU, nothing to maintain.
The price: your voice travels to a vendor, per-minute billing — and the privacy thesis above no longer holds. An honest trade, stated plainly.
The same rule as everywhere on this shelf: the machine shows, the human confirms — and what is not yet designed is listed as not yet designed.
decidedThe device types only the transcript, only after the button is released. There is no autonomous input path — no keystroke the human did not just speak.
decidedRecording is indicated — LED and/or sound. A microphone you cannot see working is a microphone you cannot trust.
proposedCancel by long hold. Proposed, not yet approved — and no hold duration has been chosen, so this page names none.
proposedA layout test string before typing into a real document — how the human confirms it is not yet worked out.
in the specA length cap and a physical cancel. Not a detail: scancode typing runs at human speed, and for that whole time the device owns the host's keyboard — a minute of dictation is a minute when the user is not in command of their own machine. That is exactly why the spec carries a typing length limit and a physical way to stop it mid-stream.
The prices of the pattern, stated plainly — none of them hidden behind the demo.
being chosenA keyboard sends position codes; the host's layout picks the characters — so no layout-independent Cyrillic exists. Three candidate answers, each with its price: layout-dependent scancodes (fast, but a wrong guess fails silently — Latin gibberish in a real document, which is what the layout test string exists to catch), per-OS Unicode input (breaks the "nothing to install" promise, differently on every OS), or a translit fallback (always works; the price is obvious). The v1 default is not yet chosen.
documented, untested hereA Pi 5 wants 5 V/5 A over USB-C PD; an ordinary laptop USB-A port gives 2.5–4.5 W — below the Pi 5's quiet draw with Wi-Fi up.
The price: "one cable and it works" is not a Pi 5 story — it needs its own power. That single-cable story belongs to the Zero 2 W fallback (roughly a watt under load), which is why the fallback exists.
This shelf does not publish figures it does not have. Today exactly one link of the chain exists and was measured; the rest is a commitment.
Recognition of a short phrase on that private server takes about 0.7 seconds on a warm model (0.70 s and 0.73 s, two consecutive runs, full HTTP round trip on a real 1.8 s clip). The first request after idle takes about 4 seconds — the model reloads, and that is exactly the problem the warm-model mode exists to solve. This is a server-side figure only: no microphone, no Wi-Fi, no HID typing in it.
End-to-end — hold, speak, release, text on screen — is not measured, because there is nothing to measure yet. When the first build lives, this receipt gets two numbers: the end-to-end latency, and a layout test string typed on a locked corporate machine.
runningThe VoiceBridge server is real — live for over a month: dictation, recognition, per-utterance language auto-detection (mixed-language speech is the normal case here), web, Android and desktop clients.
not builtVB Tangent is a specified concept. The specification is written (a vb-tangent goal in the VoiceBridge project: the server-side warm-model toggle, plus the device itself — still a draft, holding one open owner decision). No code yet, hardware not assembled, gadget mode not yet brought up on this Pi. The server piece builds first.