picovoice/porcupine

On-device wake word detection powered by deep learning

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 34 minutes ago
Added to GitGenius on September 14th, 2026
Created on March 8th, 2018
Open Issues & Pull Requests: 0 (+0)
GitHub issues: Enabled
Number of forks: 579
Total Stargazers: 4,938 (+0)
Total Subscribers: 72 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 10.6 hours
Mean response time: 23.9 hours
90th percentile: 2.8 days
Tracked items: 89

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 18% of issues opened in the past year have been closed. Three people close 56% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 2
Closed in 7 days: 2
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 2
Closed in 7 days: 2
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (28)
  • enhancement (4)
  • question (3)
  • new-platform-request (1)

Detailed Description

Porcupine is a wake word detection engine that enables always-listening voice-activated applications through on-device deep learning.

The tool solves the problem of detecting static voice commands or wake words with high accuracy while maintaining a small computational footprint suitable for resource-constrained devices. It uses deep neural networks trained in real-world environments to recognize wake words locally on the device, avoiding the need to send audio to cloud services. The engine can detect multiple voice commands simultaneously without adding runtime overhead, and developers can train custom wake word models using Picovoice Console for domain-specific applications.

Porcupine suits projects requiring lightweight, always-listening voice activation on embedded systems, mobile devices, or web browsers. It is particularly well-matched to IoT applications and devices like Raspberry Pi where computational resources are limited. The tool supports a broad range of platforms including microcontrollers, Android, iOS, and major web browsers, as well as desktop operating systems. The README positions Porcupine specifically for detecting one or a few static voice commands; for more complex voice experiences similar to Alexa or Google, or for understanding naturally-spoken commands within specific domains, the documentation directs users toward alternative Picovoice products. The tool supports multiple languages including English, Chinese, French, German, Italian, Japanese, Korean, Portuguese, and Spanish.

The project maintains active development across multiple SDK implementations spanning Python, .NET, Java, Flutter, React Native, Android, iOS, Web, NodeJS, and C, indicating sustained investment in platform coverage. Demo applications are provided for most major platforms and languages, suggesting ongoing effort to support developer onboarding. The repository includes comprehensive documentation covering use cases, performance benchmarks, and language support details.