Skip to main content
Deepgram's Docs

Search documentation

Type to search this documentation.

On this pageOverview

September 18, 2026

Correction: Browser Agent SDK has no client-side VAD

Section titled “Correction: Browser Agent SDK has no client-side VAD”

The Browser Agent SDK never shipped client-side Silero voice activity detection. Documentation published with the SDK described it as an available feature, and that documentation was wrong. The following did not exist in any released package:

  • The vad option on MicrophoneOptions in @deepgram/agents.
  • The speechThreshold and silenceThreshold VAD options.
  • The speech-start and speech-end events on AgentMicrophone.
  • The vad field in WidgetConfig and the widget's VAD configuration section.
  • The @ricky0123/vad-web and onnxruntime-web peer dependencies. Uninstall them if you added them for VAD.

MicrophoneOptions accepts sampleRate, echoCancellation, noiseSuppression, and autoGainControl. The microphone streams continuously while it is unmuted.

Barge-in works, and it is driven server-side. The Voice Agent API emits user-started-speaking, which you pair with player.interrupt() to stop playback:

JavaScript
session.on("user-started-speaking", () => player.interrupt());

@deepgram/react subscribes to that event and interrupts playback for you, so applications built on the provider and hooks need no change.

The Browser Agent pages now reflect the shipped API. See JavaScript SDK, Widget Embedding Guide, and React Hooks & Provider.

The server-side token-minting example on the Browser Agent SDK overview posted {"ttl": 30} to POST /v1/auth/grant. The field is named ttl_seconds:

JavaScript
body: JSON.stringify({ ttl_seconds: 30 }),

/v1/auth/grant accepts unrecognized fields, returns 200, and issues a token with the 30-second default, so a request built from the old example raised no error while ignoring the requested lifetime. If you copied that example and increased the number, your tokens expired after 30 seconds.

A 30-second token is enough for a full call. The token only has to be valid at the WebSocket handshake, and the connection stays open afterward. Minting a token requires an API key with Member permissions or higher. See Token-Based Authentication.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu