Single-word browser wake detection for the Waker web stack.
@workspaces-team/waker-config for local browser training.
@workspaces-team/waker-vad for standalone VAD assets.
@workspaces-team/waker-web for fast on-device detection.
This public mirror is intentionally narrow. It exists to publish and maintain the browser-facing single-word wake packages, plus the mirrored Rust runtimes they need.
Website: https://waker.live
Issues: https://github.com/workspaces-team/waker/issues
- train and tune a single-word wake target in the browser
- run a compact WASM-backed detector close to the user interface
- publish portable runtime bundles the product can own and evolve
| Package | Purpose | Install |
|---|---|---|
@workspaces-team/waker-config |
Train and serialize single-word tiny heads in the browser | npm install @workspaces-team/waker-config |
@workspaces-team/waker-vad |
Ship standalone browser VAD runtime assets | npm install @workspaces-team/waker-vad |
@workspaces-team/waker-web |
Run single-word wake detection in the browser | npm install @workspaces-team/waker-web |
pnpm install
pnpm run verifyGenerate a starter single-word registration config:
npx @workspaces-team/waker-config --keyword "Operator"Load the bundled single-word detector runtime:
import {
createWakerWebDetector,
getBundledWakerRegistrationUrl,
} from "@workspaces-team/waker-web";
const detector = createWakerWebDetector();
await detector.load(getBundledWakerRegistrationUrl("single_word_only"));flowchart LR
A[Single-word clips] --> B[Browser trainer]
B --> C[Tiny-head artifact]
C --> D[Runtime config + detector JSON]
flowchart LR
A[Mu-Law audio chunks] --> B[WASM detector runtime]
B --> C[Single-word wake decision]
flowchart LR
A[16 kHz audio] --> B[Silero VAD weights]
B --> C[VAD WASM runtime]
C --> D[Speech activity signal]
The training and artifact side of the browser stack:
- single-word tiny-head config generation
- browser/WASM-backed head training
- head artifact serialization
- trainer-side runtime helpers
Docs: https://github.com/workspaces-team/waker/tree/main/packages/waker-config#readme
The standalone VAD asset package:
- mirrored Silero VAD WASM runtime
- mirrored VAD weight bundle
- Vite runtime asset plugin
Docs: https://github.com/workspaces-team/waker/tree/main/packages/waker-vad#readme
The detector side of the browser stack:
- bundled single-word detector runtime
- custom trained-head loading
- Vite runtime asset plugin
- vendored runtime assets for the active single-word surface
Docs: https://github.com/workspaces-team/waker/tree/main/packages/waker-web#readme
Mirrored Rust source for the detector WASM runtime and backbone weight bundle used by the public
browser packages. pkg/ is generated locally and not committed.
Mirrored Rust source for the Silero VAD WASM runtime used by @workspaces-team/waker-vad. pkg/
is generated locally and not committed.
packages/
waker-config/
waker-vad/
waker-web/
rust/
sdk-wasm/
vad-wasm/
Refresh mirrored sources and runtime manifests:
pnpm run sync:sdk-wasm:source
pnpm run sync:vad-wasm:source
pnpm run waker-config:sync:runtime-assets
pnpm run waker-vad:sync:runtime
pnpm run waker-web:sync:runtime-assetsBuild the mirrored Rust runtimes locally:
pnpm run sdk-wasm:build:release
pnpm run vad-wasm:build:releaseRun the local repo gates:
pnpm run verify
pnpm run version:check:pr -- --base-ref origin/main- The public scope is single-word wake detection only.
- The browser packages are first-class and publishable on their own.
- The Rust runtimes are mirrored so release builds can stay mechanical.
- GitHub Actions enforce CI and pull-request version policy.
More repo docs:
