| Layer | Where | Purpose |
|---|---|---|
| 1. Compile server | Django / cyberwave-backend | Validates imports and (for Wake Word) downloads weights before shipping wf_*.py |
| 2. Edge worker image | cyberwaveos/edge-ml-worker | Runs generated Python; install matching cyberwave[...] extras |
| 3. Catalog / emitters | edge-sync → model_requirements | Tells operators which one SDK extra to install per node or STT model |
Workflow nodes
| Node | Compile server (base.txt) | Edge SDK extra | model_requirements |
|---|---|---|---|
| Audio Track | — (no ML import) | zenoh on worker; microphone on capture host | — |
| Audio Assistant | silero-vad (+ torch transitive) | ml-audio | edge_package: ml-audio |
| Wake Word Engine | openwakeword, onnxruntime | ml-wakeword | edge_package: ml-wakeword |
| Call Model — STT | pywhispercpp and/or faster-whisper | From catalog metadata | Per selected ML model |
| Fuzzy Matcher | rapidfuzz | fuzzy-match | edge_package: fuzzy-match |
| Twin | httpx (base) | Base cyberwave | — |
| Virtual Controller | paho-mqtt (base) | Base cyberwave | — |
WorkflowCodeAssembler calls provision_*_for_compile() before emitting edge worker source.
SDK extras (cyberwave-python)
Defined in cyberwave-sdks/cyberwave-python/pyproject.toml. Install on edge with pip install 'cyberwave[<extra>]' or pip install 'cyberwave-edge-core[<extra>]' (thin passthrough).
| Extra | Packages | Used by |
|---|---|---|
ml-audio | silero-vad | Audio Assistant |
ml-wakeword | openwakeword, onnxruntime | Wake Word Engine |
ml-stt | pywhispercpp | Call Model — Whisper.cpp catalog models |
ml-stt-faster | faster-whisper | Call Model — Faster Whisper catalog models |
fuzzy-match | rapidfuzz | Fuzzy Matcher |
zenoh | eclipse-zenoh | Audio Track worker hook |
microphone | sounddevice, av, … | Host mic capture (driver side) |
ml-all | ml-all-vision + ml-all-audio (includes torchaudio) | CI/dev only |
ml-all-audio | openwakeword, onnxruntime, pywhispercpp, faster-whisper, silero-vad, torchaudio, rapidfuzz | Fat audio image (avoid on Pi) |
ml-all-vision | ultralytics, onnxruntime, opencv-python, tflite-runtime | Vision-only fat image |
Catalog STT models (edge_package)
Each public STT catalog entry sets metadata.edge_package to one extra (never ml-all).
| Catalog model | edge_runtime | edge_package | Weight path (edge_model_path) |
|---|---|---|---|
| Whisper Tiny EN Q5_1 | whisper_cpp | ml-stt | models/whisper/ggml-tiny.en-q5_1.bin |
| Whisper Base EN Q5_1 | whisper_cpp | ml-stt | models/whisper/ggml-base.en-q5_1.bin |
| Whisper Small EN Q5_1 | whisper_cpp | ml-stt | models/whisper/ggml-small.en-q5_1.bin |
| Whisper Tiny Multilingual Q5_1 | whisper_cpp | ml-stt | models/whisper/ggml-tiny-q5_1.bin |
| Whisper Base Multilingual Q5_1 | whisper_cpp | ml-stt | models/whisper/ggml-base-q5_1.bin |
| Faster Whisper Tiny EN | faster_whisper | ml-stt-faster | models/whisper/faster-whisper-tiny.en |
| Faster Whisper Base EN | faster_whisper | ml-stt-faster | models/whisper/faster-whisper-base.en |
| Faster Whisper Small EN | faster_whisper | ml-stt-faster | models/whisper/faster-whisper-small.en |
faster_whisper_model_id (tiny.en, base.en, small.en) for CTranslate2. Hybrid models may fall back to the cloud whisper node when not running on edge.
See Call Model STT on edge.
Compile server setup (Django)
Packages are listed incyberwave-backend/requirements/base.txt:
base.txt, rebuild the Django Docker image:
- “Wake Word Engine but openwakeword is not installed on the compile server”
- “Fuzzy Matcher but rapidfuzz is not installed …”
- “Audio Assistant but silero-vad (or torch) is not installed …”
- “whisper.cpp but pywhispercpp is not installed …”
- “faster-whisper is not installed …”
Edge worker image
Defaultcyberwaveos/edge-ml-worker installs a fat extra set for dev:
ml,ml-onnx,ml-stt,ml-stt-faster,ml-audio,fuzzy-match,zenoh,image,schedule plus openwakeword via --no-deps (Python 3.12).
For Raspberry Pi, rebuild a slim image with only what your workflow uses:
Typical voice pipeline (extras needed)
ml-all.
Related
Audio in Workflows
PCM format and pipeline overview
Call Model STT
Whisper.cpp vs Faster Whisper on edge
Wake Word compile
Compile-time model download
Edge model cache
Weight download on device