Picovoice/porcupine

On-device wake word detection powered by deep learning

What it solves

Porcupine is a lightweight, highly accurate wake word engine designed to enable "always-listening" voice-enabled applications. It allows a system to efficiently detect specific, static voice commands (wake words) in real-time without consuming significant computational resources.

How it works

The engine uses deep neural networks trained in real-world environments to identify specific audio patterns. It is designed to be compact and computationally efficient, making it suitable for deployment on everything from high-end desktops to low-power IoT devices and microcontrollers. Developers can use pre-built keywords or train custom wake word models via the Picovoice Console.

Who it’s for

Developers building voice-activated interfaces for IoT devices, mobile apps (Android/iOS), web applications, and embedded systems (like Raspberry Pi or Arduino) who need a reliable way to to trigger actions based on a few static voice commands.

Highlights

  • Extensive Cross-Platform Support: Works across Arm Cortex-M, STM32, Arduino, Raspberry Pi, Android, iOS, Web (Chrome, Safari, Firefox, Edge), Linux, macOS, and Windows.
  • High Performance: Claimed to be 11 times more accurate and 6.5 times faster than competing libraries like PocketSphinx and Snowboy on Raspberry Pi 3.
  • Customizable: Supports custom wake word training through a self-service console.
  • Multilingual: Supports English, Chinese (Mandarin), French, German, Italian, Japanese, Korean, Portuguese, and Spanish.
  • Scalable: Can detect multiple wake words simultaneously without increasing the runtime footprint.

Related

  • Project
  • Project
  • Project
  • Project
  • Project