Skip to content
Star

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 stop

Core logic:

  1. Analyze audio continuously to detect whether you are speaking
  2. Start a timer when silence is detected
  3. When silence duration exceeds the configured window (e.g. 1.2s), stop recording
  4. 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:

KeyTypeRangeDefaultDescription
autoStopOnSilenceEnabledBoolean-falsemaster switch
autoStopSilenceWindowMsInt500-30001200silence window threshold (ms)
autoStopSilenceSensitivityInt1-104sensitivity (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
LevelDescriptionBest for
1-3 Conservativestop only when it is very confidentnoisy environments; quiet voice; frequent pauses
4-6 Balancedbalanced accuracy and responsivenessdaily use
7-10 Sensitivequick response; small pauses may trigger stopquiet environment; fast input

Suggested configs

Daily chat

autoStopOnSilenceEnabled = true
autoStopSilenceWindowMs = 1000  # 1s
autoStopSilenceSensitivity = 5  # medium-high

Dictation / documents

autoStopOnSilenceEnabled = true
autoStopSilenceWindowMs = 1500  # 1.5s
autoStopSilenceSensitivity = 4  # balanced

Meeting notes

autoStopOnSilenceEnabled = true
autoStopSilenceWindowMs = 2000  # 2s
autoStopSilenceSensitivity = 3  # conservative

Details

Detection interval

VAD runs every 96ms:

every 96ms → speech/silence → update silence timer → trigger when threshold reached

Trigger conditions

Auto-stop triggers only when:

  1. ✅ enabled (autoStopOnSilenceEnabled = true)
  2. ✅ VAD model initialized successfully
  3. ✅ continuous silence ≥ autoStopSilenceWindowMs
  4. ✅ currently recording

Works with all modes

Recognition modeVAD auto-stopNotes
Streamingstops audio stream upload
File modeuploads full audio file after stop
Localsubmits audio to local engine

Troubleshooting

VAD does not stop recording

Checklist:

  1. ✅ enabled
  2. ✅ you paused long enough (pause ≥ window)
  3. ✅ environment not too noisy
  4. ✅ you are actually recording

Try:

autoStopSilenceSensitivity = 6
autoStopSilenceWindowMs = 1000

Stops unexpectedly while speaking

Possible causes:

  • long pauses while speaking
  • sensitivity too high
  • voice too quiet / too far from mic

Try:

autoStopSilenceSensitivity = 3
autoStopSilenceWindowMs = 2000

Background noise prevents stopping

If noise is mistaken as speech:

  1. move to a quieter environment
  2. use a directional mic/noise-canceling headset
  3. lower sensitivity:
    autoStopSilenceSensitivity = 2
  4. or disable VAD temporarily and stop manually

Feels too slow after you stop speaking

Cause: silence window too long.

Try:

autoStopSilenceWindowMs = 800

Released under the Apache 2.0 License.