Skip to content

workspaces-team/waker

Repository files navigation

Waker highlights: local training, fast runtime, portable bundles

waker

Single-word browser wake detection for the Waker web stack.

CI Version Policy

npm: waker-config npm: waker-vad npm: waker-web

@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

Why This Repo Exists

  • 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

Packages

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

Quick Start

pnpm install
pnpm run verify

Generate 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"));

Package Flows

@workspaces-team/waker-config

flowchart LR
  A[Single-word clips] --> B[Browser trainer]
  B --> C[Tiny-head artifact]
  C --> D[Runtime config + detector JSON]
Loading

@workspaces-team/waker-web

flowchart LR
  A[Mu-Law audio chunks] --> B[WASM detector runtime]
  B --> C[Single-word wake decision]
Loading

@workspaces-team/waker-vad

flowchart LR
  A[16 kHz audio] --> B[Silero VAD weights]
  B --> C[VAD WASM runtime]
  C --> D[Speech activity signal]
Loading

What Lives Here

@workspaces-team/waker-config

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

@workspaces-team/waker-vad

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

@workspaces-team/waker-web

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

rust/sdk-wasm

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.

rust/vad-wasm

Mirrored Rust source for the Silero VAD WASM runtime used by @workspaces-team/waker-vad. pkg/ is generated locally and not committed.

Workspace Layout

packages/
  waker-config/
  waker-vad/
  waker-web/
rust/
  sdk-wasm/
  vad-wasm/

Maintainer Flow

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-assets

Build the mirrored Rust runtimes locally:

pnpm run sdk-wasm:build:release
pnpm run vad-wasm:build:release

Run the local repo gates:

pnpm run verify
pnpm run version:check:pr -- --base-ref origin/main

Design Constraints

  • 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:

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors