Build1 distinct publisher3 min readUpdated
A vendor benchmark puts wake-word at 5.3% of one core on a $15 Pi Zero 2 W. That is the bar for on-device listening now, and the free-phrase-only catch travels with it.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Picovoice's Porcupine, the on-device wake-word SDK a lot of hobby and prototype voice stacks were built on, had its free tier deprecated as of 30 June 2026, replaced by a 7-day trial followed by paid, according to a post published on dev.to by the vendor behind a competing detector [1]. That turns the cheapest layer of the stack into a line item, and since wake-word is the component that listens to the mic 24 hours a day and therefore dominates the energy and compute budget of a voice-first device [3], it is the layer worth re-costing first.
The budget has three tiers. Voice activity detection is the floor at roughly 1% CPU and only answers whether speech is present at all [4]. Wake-word answers whether a specific phrase was said, typically from a 10 to 100 KB model, and runs 1 to 10% CPU always-on [5]. Full ASR is a different order of magnitude: around a 60 MB model and 30 to 40% CPU on a mid-range Android, and it only fires after the wake-word hits [6].
The number now being offered as the bar is 5.3% of one Cortex-A53 core on a $15 Raspberry Pi Zero 2 W, described as 24/7 sustained [7]. Expressed as a real-time factor, that is 53 milliseconds of CPU time per second of audio [8]. The board is a quad-core A53 at 1 GHz with 512 MB of RAM and no GPU [9], so the same load is about 1.3% of the machine's total four-core capacity [12]. The vendor's framing is that this leaves 95% of the core plus three other cores for the application, and that on a Pi 5 the detector is effectively free at under 1% [11].
Read the measurement conditions before you plan around it. The Pi Zero 2 W figure comes from a 60-second sustained live-mic push; the Pi 3, 4 and 5 numbers in the same table are estimates scaled by clock speed and architecture generation, not independently benchmarked [10]. A one-minute window is not the same evidence as a 24/7 claim, and it is the vendor's own measurement of the vendor's own model [24].
Accuracy is reported on 5,240 positive and 6,416 negative utterances [13], which is 11,656 in total [14]: ROC AUC 0.9966, PR AUC 0.9899, and at a 0.90 threshold precision 0.993 with recall 0.982 [13]. That precision implies roughly one false accept per 142 accepted detections [15]; the post rounds it to about one false positive per 100-plus triggers and about 2% of real wake-words missed [16]. The model is about 48 thousand parameters in a roughly 100 KB encrypted .vxrt file at 16 kHz mono with 32 ms frames [17], against Whisper base.en's roughly 74 million parameters [19]. Training data is 100% synthetic with augmentation and no human voice samples, which the vendor presents as removing a licensing question for commercial deployment [18].
The catch sits in the same place Picovoice's did. The free tier is one fixed phrase, "Hey Assistant"; custom phrases are paid, with the training pipeline available on request [20]. If what you actually needed was a custom wake word with no per-activation billing [25], this is a different paywall at the same tier. The open alternative, openWakeWord, is Apache-2.0 with community models, but the post concedes that training a custom phrase means gathering data, training and iterating [21], and building from scratch on TF Lite needs ML expertise and hours [22].
Watch for an independent reproduction of the 5.3% figure over hours rather than a minute, with thermals attached. Watch how custom-phrase pricing is structured, per device or per activation, since that is the variable that made the old tier hurt. And note that the model ships encrypted [17]; whether it needs a periodic activation check is the detail that decides whether "on-device" survives a dead uplink, and the post does not say.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
The headline number claimed is 5.3% CPU on one A53 core of a $15 Raspberry Pi Zero 2 W, 24/7 sustained.
RTF is CPU time divided by audio duration; RTF 0.053 means the processor spends 53 milliseconds of CPU time per 1 second of audio.
Picovoice / Porcupine is an on-device wake-word SDK that works offline after activation, with a proprietary model; its free tier was deprecated as of 30 June 2026 and replaced by a 7-day trial followed by paid.
Voice Activity Detection is the lightest stage, answering whether there is any speech in the audio, running at about 1% CPU and used as a pre-filter for heavier stages.
A wake-word detector answers whether a specific phrase was said, typically uses a 10-100 KB model, and runs 1-10% CPU in always-on mode.
Full ASR does complete transcription, uses roughly a 60 MB model and 30-40% CPU on a mid-range Android, and only fires after wake-word success.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Single vendor benchmark, partly estimated, unreproduced
One source, authored by the vendor of the runtime under test, supplies every number. Method disclosure is above average for a vendor post (named SoC, 60-second live-mic loop, one of four cores, sustained rather than peak, explicit labeling of the Pi 3/4/5 rows as scaled estimates), which earns it more than a floor score. But there is no independent reproduction, no raw data or harness, no test-set provenance behind the accuracy figures, and the competitor pricing change that anchors the framing is asserted without a primary citation.
No usage evidence supplied
The sources contain no deployments, installs, download counts, named users, integrations or disclosed customers for the vendor runtime, and nothing on how many projects the Picovoice pricing change actually affects. The two observable events are a competitor's pricing shift and a self-published benchmark, neither of which measures uptake.
Headline outruns what was actually measured
The travelling claim is a clean 'always-on wake-word for 5.3% on a $15 Pi', while the supporting work is a 60-second single-core run by the vendor, a hardware ladder that is mostly extrapolated, accuracy on an undisclosed test set from a fully synthetic training regime, and in-practice false-positive rates rounded down from the reported precision. The gap is moderated, not erased, by the post's own caveats: it labels estimates as estimates and publishes sustained rather than flattering peak numbers. The sharper overstatement is positioning as the answer to Picovoice's paywall while custom phrases - the stated hobbyist requirement - sit behind the same paywall.
Vendor benchmarking itself against a newly paywalled rival
The author sells the runtime being measured, controls the only copy of the benchmark and accuracy data, monetizes exactly the feature it identifies as the hobbyist requirement (custom phrases, priced on request), and opens by reporting that the leading incumbent has just removed its free tier. Every framing choice in the post carries direct commercial upside for the publisher, and the distribution channel is a self-serve developer blog with no editorial gate.
Internally consistent but single-source and unverified
Confidence in what was published is reasonable: the numbers are specific, internally consistent (precision 0.993 matches the roughly one-in-142 false-accept arithmetic, RTF 0.053 matches 53 ms per second), and the methodology is stated. Confidence in the underlying reality is limited by one interested publisher, zero replication, no adoption signal, and no disclosed test-set or pricing detail, so the assessment could move materially on a single independent measurement.
build
Whisper's 300ms floor is architecture, not a bug: when live voice needs streaming ASR1 distinct publisher
build
Base Compute hands kernel tuning to agents; the carryover claim is the unmeasured part1 distinct publisher
build
The judge went synthetic first, which tells you which part of your pipeline is next1 distinct publisher
build
The only way to prove a contract test can fail is to ship a server that lies1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 21, 2026