skillfed

pvporcupine

Porcupine wake word engine.

pvporcupine v4.0.3 160.1K downloads/30d#10,676 on PyPI4,911
Permissive license Active released

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

Porcupine is a lightweight wake word detection engine that identifies spoken keywords in audio streams, enabling always-listening voice applications with minimal computational overhead.

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

pip

pip install pvporcupine

uv

uv add pvporcupine

poetry

poetry add pvporcupine

Installing pvporcupine

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.

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()

Requires a free Picovoice AccessKey obtained from https://console.picovoice.ai/ to initialize the engine. Python 3.9 or later required.

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 not declared (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 1 — requests
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)

Evidence: pvporcupine-4.0.3-py3-none-any.whl

Keywords: wake word engine, hotword detection, keyword spotting, wake word detection, voice commands

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Topic :: Multimedia :: Sound/Audio :: Speech

Tags

wake word detectionhotword recognitionkeyword spottingvoice command detectionalways-listening audiospeech trigger detectionvoice activation engine
voice-activationedge-mlaudio-processing

More Speech packages

Further reading