Skip to main content

A lightweight, fast, and AI-powered custom wake word detection system.

Project description

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 .wav recordings. 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 (negative dataset) 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 .wav files 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 .wav file 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]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

voxpulse-1.0.4.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

voxpulse-1.0.4-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file voxpulse-1.0.4.tar.gz.

File metadata

  • Download URL: voxpulse-1.0.4.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for voxpulse-1.0.4.tar.gz
Algorithm Hash digest
SHA256 6b42af82c289609c2e021f562feff8d5d293c326bf5e151c09b1260065dd4b56
MD5 ea2c54928abdb012097718875fbcb422
BLAKE2b-256 5387f9b78a7678b2ffd98405a44b7dc4c3d59214333f0b152cb2e5ed37417299

See more details on using hashes here.

Provenance

The following attestation bundles were made for voxpulse-1.0.4.tar.gz:

Publisher: publish.yml on itzabhishekgour/VoxPulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voxpulse-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: voxpulse-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for voxpulse-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 157b8b8201a58b3e23af181ed5a52fc5a5cdf86e5739df8bfca47afea272984b
MD5 b6a5e1c5ddef701e1370728a384424b2
BLAKE2b-256 56c5e12869d188e55cdc2dd86408c38a296a35ab4f6e1908177a130b7d9ca9e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for voxpulse-1.0.4-py3-none-any.whl:

Publisher: publish.yml on itzabhishekgour/VoxPulse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page