Tools for building wake-word and speech-command datasets and models.
Project description
wakewords
Build custom wakeword and command-word datasets from TTS-generated words plus Google Speech Commands.
Quick Start
Create A Project
Initialize the project layout:
uv run wakewords init
This creates data/, background_audio/, config.json, and a project .gitignore entry for downloaded Google Speech Commands data.
Edit config.json and put your wake words in custom_words.
Set Up TTS
The default TTS provider is Cartesia. Set your API key before generating audio:
export CARTESIA_API_KEY=your-api-key
Custom TTS providers can be registered from config.json. See docs/custom-providers.md.
Generate English Data
Generate clean samples for your custom words using every available English voice:
uv run wakewords generate --lang en --all-voices
Generated files are written under data/<word>/.
Augment The Dataset
Create noisy tempo variants for the generated clean samples:
uv run wakewords augment
By default, augmentation targets about 4000 total samples per word.
Train
Download Google Speech Commands, build manifests, and preview the training run:
uv run wakewords download
uv run wakewords manifest
uv run wakewords train --dry-run
Run training on Linux with NeMo installed:
uv run wakewords train
Training uses NeMo's from_pretrained() by default. To train from a local .nemo file instead, pass --base-model-path.
Find Outputs
Training artifacts are written under runs/<run-name>/:
train_config.jsoncheckpoints/logs/models/
The final exported model is written under the run's models/ directory.
More Details
See docs/USAGE.md for command options, split ratios, augmentation details, cleaning commands, and training notes.
License
Copyright (c) 2026 Akash Manohar John under MIT License (See LICENSE file).
Background Sound: The background audio embedded in this pypi package comes from the Google Speech Commands dataset and ships with this library for convenience. This is licensed under the same license as the dataset. The details are in the README.md file inside of the wakewords/google_scd_background_noise dir.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wakewords-0.1.0.tar.gz.
File metadata
- Download URL: wakewords-0.1.0.tar.gz
- Upload date:
- Size: 11.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9db9c9bef36a023db4572b26b2b8218863e62f50d1ff8b85672f5204895ef5d
|
|
| MD5 |
63dae55d67dc1b193b0d1b6e4740528d
|
|
| BLAKE2b-256 |
85ab9f6883a4d1a4c9290043b6d0146ac89d26f8324b9ad605cf606087850678
|
Provenance
The following attestation bundles were made for wakewords-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on HashNuke/wakewords
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wakewords-0.1.0.tar.gz -
Subject digest:
b9db9c9bef36a023db4572b26b2b8218863e62f50d1ff8b85672f5204895ef5d - Sigstore transparency entry: 1391143395
- Sigstore integration time:
-
Permalink:
HashNuke/wakewords@717cfe76fd43d5c0d03ec7964e26814e3f7a22dc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/HashNuke
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@717cfe76fd43d5c0d03ec7964e26814e3f7a22dc -
Trigger Event:
push
-
Statement type:
File details
Details for the file wakewords-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wakewords-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e2f18ba22f98095116069f32213068c37c7a16ce69ebc5bc5d9132f8e933f06
|
|
| MD5 |
e6b1065ec7cba4b1067d6c9345ce1076
|
|
| BLAKE2b-256 |
d9d3ab77b8204099bf867dee5bd9a39ff492ae1236585f79c49db0b6cdbce31f
|
Provenance
The following attestation bundles were made for wakewords-0.1.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on HashNuke/wakewords
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wakewords-0.1.0-py3-none-any.whl -
Subject digest:
5e2f18ba22f98095116069f32213068c37c7a16ce69ebc5bc5d9132f8e933f06 - Sigstore transparency entry: 1391143501
- Sigstore integration time:
-
Permalink:
HashNuke/wakewords@717cfe76fd43d5c0d03ec7964e26814e3f7a22dc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/HashNuke
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@717cfe76fd43d5c0d03ec7964e26814e3f7a22dc -
Trigger Event:
push
-
Statement type: