Halopen vs Wispr Flow -- raw evidence, measured 2026-09-20 =========================================================== Builds tested: Halopen 1.8.29 (build 189) and Wispr Flow 1.6.897 Machine: one MacBook Pro, built-in microphone, quiet room Both apps at their default settings. Halopen's output mode pinned to Verbatim, its shipped default. One app running at a time: both listen for the same key, and a take answered by the wrong app is void. FIDELITY (fidelity-script.txt, fidelity-halopen.txt, fidelity-wispr-flow.txt) Audio: fidelity-script.txt spoken by macOS itself -- say -v Samantha -r 170 -o fidelity-corpus.aiff "" so anyone can regenerate byte-identical audio. Played into each app three times. Each output file holds the three runs. Score: twelve constructions that cleanup models tend to "correct" -- kept as spoken, or changed. Halopen kept 10, changed 2 ("should of" -> "should've"; "the the" -> "the") Wispr Flow kept 2, changed 9, one not decided ("i'm gonna": the output read "I'm going to", recorded as undecided rather than counted) SPEED (speed-by-release-gap.tsv) Audio: a 10-second recording of a person speaking. Measured from the moment the key is released to the moment text appears, by an external probe -- never either app's own timer. "settle" is the gap between the last word and releasing the key. Six takes per app per gap, interleaved so drift lands on both equally. gap Halopen median Wispr Flow median 0.10s 783 ms 453 ms 0.25s 829 ms 459 ms 0.40s 2052 ms 489 ms 0.80s 1697 ms 457 ms Wispr Flow was faster at every gap. Limits: one machine, one day, one build of each. Software changes; re-run before relying on these numbers. A NO_MEASUREMENT row is recorded as such, never dropped.