Simple energy-threshold VAD: compute RMS energy per 20ms frame; flag as speech if above threshold. Cheap and fast. Vulnerable to background noise spikes.
Neural VAD (Silero, py-webrtcvad) replaces threshold with a small classifier. Near-zero false positives on stationary noise. Standard in production voice agents.