pvporcupine
Porcupine wake word engine.
Decision gist · record as of 2026-08-14
Yes. Porcupine is a production-ready, actively maintained wake word engine with low install friction, permissive licensing, and no known vulnerabilities. It's well-suited for voice-activated applications where on-device detection is preferred. The only prerequisite is obtaining a free AccessKey from Picovoice Console, which is a minor friction point but not a blocker.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a free Picovoice AccessKey obtained from https://console.picovoice.ai/ to initialize the engine.
- Python 3.9 or later required.
- Low install friction with a pure Python wheel distribution.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache Software License (permissive), which allows commercial and private use with minimal restrictions—suitable for most projects without legal concern.
last release 2026-06-25 (50 days) · last repo commit 2026-08-12 · 4,911 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 160,057 downloads/mo, #10,676 on PyPI
Alternatives
Verify before relying
pip install pvporcupine
import pvporcupine
access_key = "YOUR_ACCESS_KEY" # from Picovoice Console
handle = pvporcupine.create(access_key=access_key, keywords=['picovoice'])
while True:
keyword_index = handle.process(audio_frame)
if keyword_index >= 0:
print(f"Detected keyword: {keyword_index}")
handle.delete()- Whether the package's neural network models are updated regularly and how security patches are distributed.
- Latency and accuracy metrics under real-world conditions on different hardware platforms.
- Whether custom-trained models via the API are subject to additional licensing or usage restrictions.
What it is and what it does
Porcupine is a speech recognition engine from Picovoice that detects wake words and voice commands in real-time audio. It uses deep neural networks trained in real-world environments and is optimized for low computational cost, making it suitable for IoT devices, embedded systems, and always-listening applications. The engine can detect multiple keywords simultaneously and supports cross-platform deployment on Linux, macOS, Windows, Raspberry Pi, Android, iOS, and browsers.
You initialize Porcupine with an AccessKey (obtained free from Picovoice Console) and specify keywords to detect—either from a built-in set or custom-trained models. The engine processes audio frames and returns a keyword index when a match is detected. Sensitivity can be tuned per keyword to trade off miss rate against false alarms. The package ships with model files for multiple languages and supports training custom wake word models via API.
Use it for
- Build smart home devices that wake on a custom voice command without sending audio to the cloud.
- Add voice activation to IoT applications running on Raspberry Pi or embedded Linux systems.
- Implement always-listening voice assistants in mobile apps or web browsers with low latency.
- Detect multiple voice commands in real-time for hands-free control in industrial or automotive settings.
- Train and deploy custom wake words for branded voice interfaces via the Picovoice API.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Porcupine is a production-ready, actively maintained wake word engine with low install friction, permissive licensing, and no known vulnerabilities. It's well-suited for voice-activated applications where on-device detection is preferred. The only prerequisite is obtaining a free AccessKey from Picovoice Console, which is a minor friction point but not a blocker.
Install
pvporcupine on PyPI
Before you install
Low install friction with a pure Python wheel distribution. The package is actively maintained with a recent release (50 days ago) and has been in production since 2019. Requires only requests as a runtime dependency.
Requires a free Picovoice AccessKey obtained from https://console.picovoice.ai/ to initialize the engine. Python 3.9 or later required.
License in practice
Licensed under Apache Software License (permissive), which allows commercial and private use with minimal restrictions—suitable for most projects without legal concern.
Quickstart
pip install pvporcupine
import pvporcupine
access_key = "YOUR_ACCESS_KEY" # from Picovoice Console
handle = pvporcupine.create(access_key=access_key, keywords=['picovoice'])
while True:
keyword_index = handle.process(audio_frame)
if keyword_index >= 0:
print(f"Detected keyword: {keyword_index}")
handle.delete()
Verify before relying
- Whether the package's neural network models are updated regularly and how security patches are distributed.
- Latency and accuracy metrics under real-world conditions on different hardware platforms.
- Whether custom-trained models via the API are subject to additional licensing or usage restrictions.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagerequests |
| Maintenance | Actively maintained 50 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 160,057 / month, #10,676 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Multimedia :: Sound/Audio :: Speech |
Evidence: pvporcupine-4.0.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “wake word detection”
- pvporcupinePorcupine is a lightweight wake word detection engine that identifies…
- wyomingWyoming is a peer-to-peer TCP protocol for voice assistants that…
- openwakewordopenWakeWord detects wake words and phrases in audio streams using…
Give your agent the search over MCP, or paste the wish link into any chat.
More Speech packages
Performs speech recognition and transcription using multiple online and offline engines, including Google, OpenAI Whisper, CMU Sphinx, and others.
The main gotcha is that most engines require optional dependencies or API credentials.
gTTS converts text to speech using Google Translate's API, writing MP3 audio to files, file-like objects, or stdout via Python library or command-line tool.
However, be aware that it depends on Google Translate's undocumented API—upstream changes can break it without notice, and it is not a substitute for official Google…
Lhotse prepares multimodal (speech, audio, video, image, text) data for machine learning model training with flexible pipelines, on-the-fly augmentation, and efficient data loading.
Install it if you are building speech, audio, or multimodal training pipelines; skip it if you only need simple audio I/O without data augmentation or complex dataset…
Piper TTS is a local neural text-to-speech engine that converts text to speech using embedded phonemization, with support for multiple languages and voices.
FunASR is a speech recognition toolkit that transcribes audio offline or via streaming, with integrated voice activity detection, speaker identification, punctuation restoration, and emotion/audio-event tagging across multiple languages and deployment targets.
Install it if you need speaker diarization, emotion detection, streaming support, or self-hosted deployment.
PocketSphinx provides Python bindings for Carnegie Mellon University's open-source speech recognition engine, enabling continuous speech-to-text and keyword spotting from live microphone input or audio files.
See also openwakeword · wyoming · realtimestt · pymicro-vad · whisper-timestamped · sherpa-onnx · panns-inference · pyrnnoise · sherpa-onnx-core