Skip to main content
RunAnywhere.vad answers “is someone talking right now”. It is what a voice interface uses to decide when a turn has ended.

Signatures

React Native has no vad.openStream and no vad.reset(). The push-shaped VadStream exists on Swift, Kotlin, Web, and Electron, but not here. Use detectStream.

Streaming

Building the audio iterable is the same problem as in streaming STT, and the same generator works for both.

Options

minSilenceMs is the one to tune. Too short and the assistant interrupts someone who paused; too long and it feels sluggish. prefixPaddingMs matters because detection lags the first syllable. Without padding, “hello” reaches the transcriber as “ello”.

You may not need this

For a spoken conversation, use the voice session. It runs VAD, transcription, generation, and speech together, with turn-taking and interruption wired up.