Auto-stop on Silence (VAD)
Auto-stop on silence (Voice Activity Detection, VAD) can stop recording automatically after you stop speaking, so you don't need to tap "stop" manually.
How it works
BiBi Keyboard uses the Silero VAD model to detect speech activity in real time:
Record → analyze audio in real time → detect speech/silence → accumulate silence time → reach threshold → auto stopCore logic:
- Analyze audio continuously to detect whether you are speaking
- Start a timer when silence is detected
- When silence duration exceeds the configured window (e.g. 1.2s), stop recording
- Submit audio for recognition automatically
VAD model
BiBi Keyboard uses Silero VAD v5, which is:
- lightweight (~629KB)
- low-latency (real-time)
- accurate (better speech vs noise separation)
- fully offline (runs locally)
Settings
All options are under Settings → ASR Settings → Auto-stop on silence:
| Key | Type | Range | Default | Description |
|---|---|---|---|---|
autoStopOnSilenceEnabled | Boolean | - | false | master switch |
autoStopSilenceWindowMs | Int | 500-3000 | 1200 | silence window threshold (ms) |
autoStopSilenceSensitivity | Int | 1-10 | 4 | sensitivity (1=conservative, 10=sensitive) |
1. Enable switch
- Key:
autoStopOnSilenceEnabled - Default: off
2. Silence window
- Key:
autoStopSilenceWindowMs - Range: 500ms - 3000ms
- Default: 1200ms
Suggested presets:
- Fast: 800ms (short phrases, chat)
- Balanced: 1200ms (default)
- Relaxed: 2000ms (long sentences with pauses)
3. Sensitivity
- Key:
autoStopSilenceSensitivity - Range: 1 - 10
- Default: 4
| Level | Description | Best for |
|---|---|---|
| 1-3 Conservative | stop only when it is very confident | noisy environments; quiet voice; frequent pauses |
| 4-6 Balanced | balanced accuracy and responsiveness | daily use |
| 7-10 Sensitive | quick response; small pauses may trigger stop | quiet environment; fast input |
Suggested configs
Daily chat
autoStopOnSilenceEnabled = true
autoStopSilenceWindowMs = 1000 # 1s
autoStopSilenceSensitivity = 5 # medium-highDictation / documents
autoStopOnSilenceEnabled = true
autoStopSilenceWindowMs = 1500 # 1.5s
autoStopSilenceSensitivity = 4 # balancedMeeting notes
autoStopOnSilenceEnabled = true
autoStopSilenceWindowMs = 2000 # 2s
autoStopSilenceSensitivity = 3 # conservativeDetails
Detection interval
VAD runs every 96ms:
every 96ms → speech/silence → update silence timer → trigger when threshold reachedTrigger conditions
Auto-stop triggers only when:
- ✅ enabled (
autoStopOnSilenceEnabled = true) - ✅ VAD model initialized successfully
- ✅ continuous silence ≥
autoStopSilenceWindowMs - ✅ currently recording
Works with all modes
| Recognition mode | VAD auto-stop | Notes |
|---|---|---|
| Streaming | ✅ | stops audio stream upload |
| File mode | ✅ | uploads full audio file after stop |
| Local | ✅ | submits audio to local engine |
Troubleshooting
VAD does not stop recording
Checklist:
- ✅ enabled
- ✅ you paused long enough (pause ≥ window)
- ✅ environment not too noisy
- ✅ you are actually recording
Try:
autoStopSilenceSensitivity = 6
autoStopSilenceWindowMs = 1000Stops unexpectedly while speaking
Possible causes:
- long pauses while speaking
- sensitivity too high
- voice too quiet / too far from mic
Try:
autoStopSilenceSensitivity = 3
autoStopSilenceWindowMs = 2000Background noise prevents stopping
If noise is mistaken as speech:
- move to a quieter environment
- use a directional mic/noise-canceling headset
- lower sensitivity:
autoStopSilenceSensitivity = 2 - or disable VAD temporarily and stop manually
Feels too slow after you stop speaking
Cause: silence window too long.
Try:
autoStopSilenceWindowMs = 800