Wake-word detection that runs on a Raspberry Pi Zero
It lets a Raspberry Pi Zero listen for its name without calling the cloud.

What it does
Porcupine is a wake-word engine: it listens continuously for one or a few static voice commands—think “Hey Siri” or “Alexa”—and fires a callback when it hears its target. It runs entirely on-device, so audio never leaves the hardware. The project targets IoT and mobile use, shipping SDKs for Python, JavaScript, mobile frameworks, and bare-metal C.
The interesting bit
The real trick is the platform spread. The same engine drops into a browser tab, a React Native app, a Raspberry Pi, and an Arm Cortex-M microcontroller. The project claims detecting multiple keywords simultaneously adds no runtime footprint—a useful property for resource-constrained devices. Custom wake-word training is available through Picovoice Console, though that requires an AccessKey.
Key highlights
- Runs on Arm Cortex-M, STM32, Arduino, Raspberry Pi, iOS, Android, Linux, macOS, Windows, and major browsers
- Supports nine languages: English, Mandarin, French, German, Italian, Japanese, Korean, Portuguese, and Spanish
- Per the project’s own benchmark, it is 11.0× more accurate and 6.5× faster than PocketSphinx or Snowboy on a Raspberry Pi 3
- Scalable to multiple wake words with no added runtime footprint
- Self-service custom model training via Picovoice Console
Caveats
- Every demo and SDK requires a Picovoice AccessKey, so it is not a grab-and-go open-source library without account registration
- Additional languages beyond the nine supported are only available to commercial customers on a case-by-case basis
- Strictly for static, always-listening commands; complex natural-language understanding requires Picovoice’s separate Rhino or platform products
Verdict
Embedded developers and privacy-conscious mobile builders who need an offline “listen for your name” feature should look here. If you need full conversational voice control or want a fully open-source stack with no API keys, this is not your stop.
Frequently asked
- What is Picovoice/porcupine?
- It lets a Raspberry Pi Zero listen for its name without calling the cloud.
- Is porcupine open source?
- Yes — Picovoice/porcupine is open source, released under the Apache-2.0 license.
- What language is porcupine written in?
- Picovoice/porcupine is primarily written in Python.
- How popular is porcupine?
- Picovoice/porcupine has 4.9k stars on GitHub.
- Where can I find porcupine?
- Picovoice/porcupine is on GitHub at https://github.com/Picovoice/porcupine.