Picovoice Porcupine

Picovoice Porcupine is a leading commercial-grade open-source wake word detection engine developed by Picovoice Inc. It is fully on-device, requiring no cloud connectivity for inference, and provides native SDKs for both Android and iOS — making it the strongest existing candidate for building a mobile voice distress detection app.

Porcupine’s core architecture processes 16 kHz mono PCM audio in a continuous stream, detecting configured wake words with claimed accuracy 11 times better than PocketSphinx and 6.5 times faster on Raspberry Pi 3 hardware. The engine is written in C and compiled for each target platform, with native wrapper SDKs for Android (Java/Kotlin), iOS (Swift/Objective-C), Flutter, and React Native. It supports fully offline operation — critical for a distress app that must function without a data connection.

The accuracy benchmark is independently verifiable via Picovoice’s open-source benchmark framework: 97.1% detection rate at less than 1 false alarm per 10 hours in a 10 dB SNR environment (background speech and ambient noise). For a safety application, the sensitivity parameter should be set high (e.g. 0.7–0.9) to minimise missed detections — the cost of a false alarm (armed response dispatched unnecessarily) is far lower than the cost of a missed alert (user harmed without response). The sensitivity-FAR tradeoff is controllable at deployment time. Resource overhead is minimal: less than 1 MB memory and less than 4% of a single CPU core on a Raspberry Pi 3 — a conservative proxy for modern Android mobile hardware, where actual consumption is lower.

Battery impact from continuous wake word detection is not published by Picovoice as an absolute figure, since it depends on processor architecture, clock speed, and system power management. Picovoice advises developers to benchmark on their target device. Comparable lightweight on-device wake word engines report approximately 1–3% battery per hour on modern Android smartphones — an estimated 33–100 hours of continuous detection on a 3,000 mAh battery before requiring a charge, making always-on operation feasible for daily use. This is significantly less than active GPS tracking (which typically consumes 5–15% per hour).

The v4.0 release in December 2025 added GPU support and improved engine performance, confirming active and commercially-backed maintenance. Custom wake words — including phrases like “Help Me” or user-defined phrases — are trained via the Picovoice Console, a web-based tool that generates compiled model files deployable to the SDK.

The most significant limitation for the South African distress app use case is the absence of local language support. Porcupine’s standard offering covers English, Chinese (Mandarin), French, German, Italian, Japanese, Korean, Portuguese, and Spanish — but not Afrikaans, isiZulu, isiXhosa, Sesotho, or any other South African language. In a multilingual SA environment where users may shout “Help Me” in any of 11 official languages, this is a material gap. Custom language models are available for commercial customers on a case-by-case basis, which would require language-specific audio corpus collection in collaboration with Picovoice. The background mode caveat is also material: Picovoice confirms developers have run Porcupine in Android and iOS background mode, but explicitly states this is OS-controlled and “cannot guarantee that this will be possible in future releases.”

Connections

Ontology Picovoice Porcupine [relates] openWakeWord Picovoice Porcupine [mitigates] Android Background Voice Recognition Picovoice Porcupine [mitigates] iOS Background Audio Constraints Picovoice Porcupine [relates] Picovoice

Sources