VoxPulse - Custom Wake Word Detection Framework
VoxPulse is a lightweight, offline, and 100% private DIY custom wake-word detection library for Python. Instead of relying on pre-trained corporate wake words like "Alexa" or "Hey Siri", VoxPulse empowers developers to train their own voice assistants with any custom name, in any language!
Why VoxPulse? (Pros & Cons)
Pros (The Good Stuff)
- 100% Privacy: Everything runs locally on your machine. No internet required, no voice data is sent to the cloud.
- Auto-Data Pipeline: You just provide raw
.wavrecordings. VoxPulse automatically handles background noise mixing, time-stretching, pitch-shifting, and Mel-Spectrogram feature extraction. - CPU & Battery Efficient: Features RMS Silence Gating. The AI model goes to sleep when the room is silent (CPU usage drops to ~0%) and only triggers the neural network when someone speaks.
- Lightweight: Uses a custom 2D Convolutional Neural Network (CNN) compiled into TensorFlow Lite (
.tflite), making it blazing fast even on low-end hardware.
Cons (The Limitations)
- DIY Approach: Since it's a custom framework, there is no pre-trained model. You must spend 5 minutes recording your own voice and room noise to use it.
- Environment Sensitive: The accuracy heavily depends on the quality of the background noise (
negativedataset) you provide during training.
How to Use VoxPulse (Quick Start Guide)
Step 1: Install the Library
Install VoxPulse directly via pip:
pip install voxpulse
Step 2: Prepare Your Dataset
Create a folder named dataset in your project directory with two sub-folders:
- dataset/positive/ - Record and save 10-15 short
.wavfiles of you saying your custom wake word (e.g., "Hey Friday"). Keep them around 1 to 1.5 seconds long. - dataset/negative/ - Record a single 5-10 minute
.wavfile of your normal room background noise (fan sounds, typing, distant talking) and place it here.
Step 3: Train Your Custom Model
Create a python script (e.g., train.py) and run the auto-pipeline:
from voxpulse.model import VoxPulseTrainer
# This single command will automatically augment data, extract features, and train the CNN!
trainer = VoxPulseTrainer(dataset_dir="dataset")
trainer.train_and_export(epochs=20, export_name="my_custom_model.tflite")
Step 4: Run the Inference Engine
Once your .tflite model is generated, you can use it to trigger any Python function in real-time. Create run.py:
from voxpulse.inference import VoxPulseEngine
def trigger_my_action():
print("Custom Wake Word Detected! Executing action...")
# Add your automation code here (e.g., open Spotify, turn on lights)
# Load your newly trained model
engine = VoxPulseEngine(model_path="my_custom_model.tflite", threshold=0.70)
# Start listening in the background
engine.start_listening(on_detect_callback=trigger_my_action)
Under the Hood (Architecture)
VoxPulse abstracts away the complexity of audio machine learning. When you call the training function, it executes the following pipeline automatically:
graph TD
A[Raw Audio: dataset/positive] -->|Step 1: Auto-Augmentation| B[Pitch Shift & Time Stretch]
D[Background Noise: dataset/negative] -->|Mix Noise| B
B -->|Step 2: Mel-Spectrogram| C[Feature Matrices]
C -->|Step 3: CNN Training| E[Keras Sequential Model]
E -->|Step 4: Compilation| F[Lightweight TFLite Model]
Metadata
Release files for voxpulse 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| voxpulse-1.0.4.tar.gz | 10.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voxpulse-1.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.8 kB
Release files / voxpulse-1.0.4.tar.gz
| Download URL | voxpulse-1.0.4.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b42af82c289609c2e021f562feff8d5d293c326bf5e151c09b1260065dd4b56
|
|
BLAKE2b-256 checksum How to use checksums |
5387f9b78a7678b2ffd98405a44b7dc4c3d59214333f0b152cb2e5ed37417299
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.
Transparency logRelease files / voxpulse-1.0.4-py3-none-any.whl
| Download URL | voxpulse-1.0.4-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
157b8b8201a58b3e23af181ed5a52fc5a5cdf86e5739df8bfca47afea272984b
|
|
BLAKE2b-256 checksum How to use checksums |
56c5e12869d188e55cdc2dd86408c38a296a35ab4f6e1908177a130b7d9ca9e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.
Transparency log