stilltype mark — a keycap with a voice waveformstilltype the build log →
the numbers

The numbers I won’t put on the landing page.

stilltype’s landing page refuses to print an accuracy percent, because nobody’s benchmark measured your voice. This page is the other half of that promise: every number I actually measured, with the method next to it — including the experiment I shelved, the feature that did nothing, and the privacy bug I shipped to myself.

accuracy · my voice

The accuracy number — mine, not yours

16.3%4.5%

Word-error rate on my own voice — an Indian-English accent that the first engine genuinely struggled with. Swapping to an open speech model running on Apple’s Neural Engine cut my errors by more than two-thirds. A sentence transcribes in about a tenth of a second once the model is warm.

This is the only accuracy number I’ll publish, and it comes with its caveat attached: it’s my voice, on my Mac. Yours will differ. That’s exactly why it doesn’t belong on a landing page as a promise.

method: 89 clips of my own speech, recorded across sessions; 25 held-out for testing, never trained on. WER = edit distance over normalized text, same normalizer both engines. warm-model latency, Apple silicon.

the size trade

Why the model download is 460 MB and not smaller

int8 model · 461 MB4.5% WER ✓ shipped
int4 model · smaller download7.5% WER — rejected

The smaller model would have made a friendlier first-run download. It also made two-thirds more mistakes on my voice. You download 460 MB exactly once; you dictate every day. Easy call.

shelved

The experiment I shelved: teaching it my voice

Before the engine swap, I spent days fine-tuning a per-user adapter so the model would learn my specific voice. It worked — up to 54% relative improvement on the old engine. It also produced the classic failure the literature warns about: trained too hard, the model got great at me and catastrophically forgot general English (its error rate on standard test speech jumped six-fold). Mixing rehearsal data back in roughly halved the forgetting.

Then the new engine hit 4.5% on my voice cold — and the whole adaptation track became irrelevant. Days of work, shelved in an afternoon, because the honest read of the numbers said so. Shipping the fancy feature would have been worse than shipping nothing.

did nothing

The feature that did nothing

stilltype could read the names already on your screen so the hard words come out spelled right. Clever idea; I built and tested the whole pipeline. On the new engine, careful testing showed it helped approximately not at all — the engine already gets those words right. It’s parked, and the toggle that would have implied it works was removed rather than shipped as decoration.

in the lab

Voice commands: the number that isn’t good enough yet

82.6%89.4%

“Remind me to call Sam at six” becoming a real reminder, parsed entirely on-device. Classification robustness climbed from 82.6% to 89.4% across three rounds of fixes on an internal test set of 508 labeled phrases. The capture commands people would use daily — reminders, notes, calendar — sit at 95–100%. Alarms with informal times (“end of day”) are the weakest, around 75%.

That’s why it ships off by default, behind a switch. 89% isn’t a number you build a habit on. It graduates when it earns it.

method: internal corpus grown 201 → 508 labeled phrases across six daily-use scenarios; scored pass/fail on intent + fields. not a public benchmark — treat as directional.

the miss

The privacy bug I shipped to myself

A strict code audit found my debug log keeping short snippets of transcriptions on disk. Private to the machine, never transmitted — but it contradicted the one promise this app exists for. It’s gone: no user content is ever logged, secure fields (passwords) are never read, and the privacy claims are now enforced by tests that fail the build, not by a paragraph on a website.

This is why the beta is fifty people and not five hundred.

what travels

The numbers about what leaves your Mac

the app~12 MB
the model, downloaded once461 MB
your audio, uploaded0 bytes, ever
analytics in the appnone
this site’s trackingdownload day-counts only

Even the site holds the line: no trackers, no IPs stored — the only metric is how many downloads happened per day, as a single number.

That’s every number I have. The one that actually matters is your first sentence — and there are a few of fifty beta spots still open →