onMatched / onNotMatched action.—
| time | rule | label | conf | delivered |
|---|
Binary yes/no is just two labels. Type yes,
add examples, type no, add examples. Three or more labels work the same way —
aim for at least 3 examples each, and keep the counts roughly balanced (the trainability
line warns you when they are not).
Two extractors, chosen by modality. Images use a 116-d descriptor (colour grid, hue histogram, oriented gradients, edge density) — the shapes demo's 26-d extractor assumes one bright blob on a dark field and measurably underperforms on photos. Sound uses 200-d log-mel statistics: mean, spread, and a 3-segment time profile, normalised so a 10× volume change moves the vector far less than a change of pitch does.
The raw capture is stored, not just the vector. That way the samples survive an extractor change and you can see what you actually recorded. Feature vectors are cached per extractor so retraining is fast.