Skip to main content

wakewordlab

On-device wake word detection for Python.

Includes a Silero VAD pre-filter that gates inference on speech frames only, reducing CPU usage on silence and cutting false positives.

Installation

pip install wakewordlab          # file scoring only
pip install wakewordlab[mic]     # + microphone streaming

Quick start

import wakewordlab

# Download a model (cached to ~/.cache/wakewordlab/models/)
wakewordlab.download("hey_jarvis")

# Start listening — VAD is on by default
detector = wakewordlab.WakewordDetector("hey_jarvis")

@detector.on_detection
def handle(event):
    print(f"Detected: {event.wake_word}  confidence={event.confidence:.2f}")

detector.start()
detector.wait()   # blocks until Ctrl-C

Streaming with VAD

VAD (Silero v5) is enabled by default. It gates the wake word model so inference only runs on frames that contain speech, keeping CPU usage low during silence.

detector = wakewordlab.WakewordDetector(
    "hey_jarvis",
    vad=True,            # default — Silero VAD pre-filter
    vad_threshold=0.5,   # lower = more sensitive (pass more frames)
    threshold=0.5,       # wake word detection threshold
    cooldown_sec=1.5,    # min seconds between consecutive detections
    stride_sec=0.1,      # how often a window is scored (seconds)
)

@detector.on_detection
def handle(event):
    print(f"{event.wake_word}  confidence={event.confidence:.2f}")
    # event.audio — the 1s window that triggered (16 kHz float32 numpy array)

with detector:
    detector.wait()

To disable VAD (score every window regardless of speech):

detector = wakewordlab.WakewordDetector("hey_jarvis", vad=False)

Score an audio file

result = detector.score_file("clip.wav")
# {
#   "detected": True,
#   "peak_score": 0.92,
#   "peak_time_sec": 0.4,
#   "hit_count": 3,
#   "window_count": 21,
#   "threshold": 0.5,
# }

Score a raw array

import numpy as np
audio = np.zeros(16000, dtype=np.float32)   # 1 s at 16 kHz
prob = detector.score(audio)                 # float 0–1

List available models

wakewordlab.list_models()   # → ["hey_jarvis", ...]

Options

Parameter Default Description
threshold 0.5 Wake word detection threshold (0–1)
vad True Enable Silero VAD pre-filter
vad_threshold 0.5 VAD sensitivity — lower passes more frames
cooldown_sec 1.5 Minimum seconds between consecutive detections
window_sec 1.0 Scoring window length in seconds
stride_sec 0.1 Hop between windows in seconds
device None Mic device index (default system mic)

List audio input devices

from wakewordlab.audio import AudioStream
print(AudioStream.list_devices())

Commercial models

Commercial models are distributed as .wkw files with a license key:

detector = wakewordlab.WakewordDetector(
    "path/to/custom.wkw",
    license_key="xxxx-xxxx-xxxx-xxxx",
)

License

Public models are licensed for non-commercial use only.

Release files for wakewordlab 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wakewordlab 0.1.1
File Size Uploaded
wakewordlab-0.1.1.tar.gz 165.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for wakewordlab 0.1.1
File
wakewordlab-0.1.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
wakewordlab-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
wakewordlab-0.1.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
wakewordlab-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
wakewordlab-0.1.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
wakewordlab-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
wakewordlab-0.1.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
wakewordlab-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
wakewordlab-0.1.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
wakewordlab-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
wakewordlab-0.1.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
wakewordlab-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
wakewordlab-0.1.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
wakewordlab-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
wakewordlab-0.1.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
wakewordlab-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 4.0 MB

Release files / wakewordlab-0.1.1.tar.gz

Download URL wakewordlab-0.1.1.tar.gz
Size 165.2 kB
Tags Source
SHA-256 checksum
How to use checksums
faeb46ba3078c2ceb6d58b3005f88b2d67fdf1a448b39243451f02eff8859e7f
BLAKE2b-256 checksum
How to use checksums
3001fe2bf6e9895ae1de06ad24398d9e8c241ac08d1b7e7a48edfdc3616f27cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp312-cp312-win_amd64.whl

Download URL wakewordlab-0.1.1-cp312-cp312-win_amd64.whl
Size 238.9 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3e51980eaa1172fe5556b796911b96398e49b83ad482cadf986b6ad99c98a18e
BLAKE2b-256 checksum
How to use checksums
1415c940ed35686d35468d2a96a2ec2187d62fbf2ebcb3957e668a6356383f49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL wakewordlab-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 248.3 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e5b475decdee6a3d9a3a178a6f44465ae89afedb497f32c8cf90cef9d66d1dd0
BLAKE2b-256 checksum
How to use checksums
cf78da360e5c1960ca2139d82f0e5a58af555fa443e4f375985f764e8f63d3df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL wakewordlab-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Size 233.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1715fcf23937918d185f51b1bf8d6ec0f59a3d77d5ea5aaf5b680c318f13bf12
BLAKE2b-256 checksum
How to use checksums
fed81241e62eb6e33e3fb0d851ead6c40a56ad7acd15da10edd13e5772e3c88b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL wakewordlab-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl
Size 238.8 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
49b4dabfd6b43cdeb042ddf622bc964bd8b3bca5b8e09a1a7f40f99a3fe576f1
BLAKE2b-256 checksum
How to use checksums
d61f5bb1cf7775d56bb587dbc06236f8b6ac85aec1482573ac98791a4933aca1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp311-cp311-win_amd64.whl

Download URL wakewordlab-0.1.1-cp311-cp311-win_amd64.whl
Size 238.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
4ce47fe7551b411ab7e3f0993ea57f63811341c1f5effbf56c933c523221b12e
BLAKE2b-256 checksum
How to use checksums
24dfb28d4f360a84ec8cb3506a52ee28b75cdce3302ca8db0876ba76b1b03208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL wakewordlab-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 247.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bfcd1f94a9a54f6924c4f060fc0ae58f6db8b1ab8f444f99f554bddbdaa62d7d
BLAKE2b-256 checksum
How to use checksums
48db6066fcab3e7da5db6e82a25b5040597c1379c2eaeb5361d09ea1939954a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL wakewordlab-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Size 233.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3aa0d74cad08d983078767d73e41a948dba0c834cc1dd8ddb6972c96af363aa8
BLAKE2b-256 checksum
How to use checksums
4cb5c51997f2e0d2a8c6e1b5c9bdb3e1584cf6867280386f60503141d0ac4421
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL wakewordlab-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 237.2 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
89998966b9a23681e88c354aa48e422a60d8da5a3d252572e9b61d759a1e96db
BLAKE2b-256 checksum
How to use checksums
419ecae2fa06d22f52f3088283ab14e9a9ffd3affa56c035ddc1b7c37bf70ec4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp310-cp310-win_amd64.whl

Download URL wakewordlab-0.1.1-cp310-cp310-win_amd64.whl
Size 238.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b9aa71ae1a066fbbc2b5d30b27ce4697b45911b7378c3199c2835ca59df30c8f
BLAKE2b-256 checksum
How to use checksums
7925fbeba490b542d343e6fdfb89ac385410b49e1afd1ee916fe24db11412e64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL wakewordlab-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 248.0 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
bf7c9fef0c216f82dcb3eff383271185abc7d200d039d9d38cd9476a635d38d4
BLAKE2b-256 checksum
How to use checksums
cdfa244e141b23d833c2caba40bbe345c9bef7d0679aebb3baa0a745a8cdaadb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL wakewordlab-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Size 233.6 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c0d3fe12233b2060af69d2e8ae2f4a4ec13817ad4aa3c2959abe1a82ec79e72f
BLAKE2b-256 checksum
How to use checksums
e13d8b81fe5ac1daa21f09d5612e30a119a6d4bf99dc1dbff0b51fa1a7770f6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL wakewordlab-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Size 238.2 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
bfcb2265c82aae032dda825241230c62ec0ce3f1cd05d2301f5fe987c12c2a65
BLAKE2b-256 checksum
How to use checksums
09d060c67ee9870797da95fdc799f64ce46cc1028c89b54c3b0a43bab688438d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp39-cp39-win_amd64.whl

Download URL wakewordlab-0.1.1-cp39-cp39-win_amd64.whl
Size 238.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
2705913069d99bf0d4198e758f6b563e51d3bdf8cac368101a4794c1445e1aa0
BLAKE2b-256 checksum
How to use checksums
4fe62784aeaec744af1bdea36fd2a971c25ef0e0bb102878b62f8d57b886288e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL wakewordlab-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 248.3 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c450451c99a6cb58fb32da5311dbca0bb2d04a669bf7d220c7cec53ee0127188
BLAKE2b-256 checksum
How to use checksums
945b5614b4394edc129a8f7ac27732c0e1835f7c43de905f62b95168c5025f05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL wakewordlab-0.1.1-cp39-cp39-macosx_11_0_arm64.whl
Size 233.9 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
534d0b6e1292ea0b774acd8b06652c311d870e922b0d22bea106b257f2ac98d8
BLAKE2b-256 checksum
How to use checksums
2a226252b1e97b04832fc336728550ef9fd2b98164c9b89df4c7af6f941c7aa7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wakewordlab-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl

Download URL wakewordlab-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl
Size 238.4 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
480d7d04d9910b5da7c439ed86bde378f400c487c95b859ab3194bee1676bfff
BLAKE2b-256 checksum
How to use checksums
866f468cca4492c713b00d5a1b1196c60d00400c61807d7da314351af7bbf2d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.1 This release

17 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page