[ Architecture ] [ Detections ] [ Setup ] [ Model ]
Architecture
Heket is designed as a local-first acoustic monitoring system. A Heket installation owns its audio stream, recordings, labels, and trained models. Network services add capabilities but aren’t required for core monitoring.
Local Heket Node
RTSP audio → clip acquisition → candidate detection → feature extraction → model classification → evidence storage → human review
Heket continuously acquires audio from an RTSP source using ffmpeg. Candidate recordings are evaluated by the currently selected model and stored locally with their detection metadata. The Flask web interface provides review, playback, labeling, training, and configuration.
Heket does not ship with a pretrained model. A new installation can run and be configured without one, but classification begins only after an initial model has been trained.
Local Learning
Models are trained by the Heket installation rather than downloaded as finished classifiers.
Training material can contain both locally labeled recordings and community clip packs obtained from TurtlePond.us. As local examples accumulate for a class, they progressively replace community examples used during training.
This allows community knowledge to bootstrap an installation without making the resulting model permanently dependent on a centralized training corpus.
TurtlePond.us
TurtlePond.us provides optional services to linked Heket nodes:
- discovery and distribution of community clip packs
- acceptance of selected labeled clips contributed by Heket installations
- brokerage of external integrations such as iNaturalist
Heket does not require TurtlePond.us for normal local monitoring after setup. A network outage does not replace or disable the local model.
The cloud adds to your Heket. It doesn’t become your Heket.
External Sharing
Selected detections can be shared through TurtlePond.us to external services such as iNaturalist. Heket retains the original evidence and records the external observation identifier.
Sharing is deliberate: linking a node does not automatically upload its recordings.