Skip to content

feat: add clientSideNoiseCancellationEnabled option to start() and reconnect() - #195

Merged
shubham-vapiai merged 6 commits into
VapiAI:mainfrom
murat-solidroad:noise-cancellation-option
Nov 2, 2026
Merged

shubham-vapiai merged 6 commits into
VapiAI:mainfrom
murat-solidroad:noise-cancellation-option

Conversation

@murat-solidroad

@murat-solidroad murat-solidroad commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Closes #194.

start() and reconnect() always turn on Daily's Krisp noise cancellation. This adds an option to skip it.

  • StartCallOptions.clientSideNoiseCancellationEnabled?: boolean, next to microphonePreflightEnabled. The clientSide prefix keeps it apart from the assistant's server-side backgroundSpeechDenoisingPlan, which it does not change. Defaults to true, so current callers see no change.
  • reconnect(webCall, options?) takes the same option. Without it, reconnect() reuses the value from the last start() or reconnect(), or true if neither set it.
  • When the option is false, the SDK does not call updateInputSettings. Daily's default processor is none, so Krisp never loads and the microphone track is never swapped. The local audio level observer then starts at once, with no track swap to race (Serialize local audio level observer startup with noise cancellation setup #181).

Tests

Six new cases in __tests__/vapi.test.ts: the default, turning it off in start(), reconnect() keeping the start() value, reconnect() overriding it, reconnect() with no prior start(), and turning it off in reconnect(). npx jest passes 79/79 and tsc --noEmit is clean.

🤖 Generated with Claude Code

murat-solidroad and others added 3 commits October 30, 2026 11:39
…apiAI#194)

Default true, so current callers still get Krisp. reconnect() reuses the
value from the last start() unless told otherwise.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@murat-solidroad murat-solidroad changed the title feat: add noiseCancellationEnabled option to start() and reconnect() feat: add clientSideNoiseCancellationEnabled option to start() and reconnect() Oct 30, 2026
murat-solidroad and others added 3 commits October 30, 2026 12:01
With it off, start() and reconnect() no longer report an
audio-processing-setup stage that never ran.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…option

# Conflicts:
#	__tests__/vapi.test.ts
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@shubham-vapiai
shubham-vapiai self-requested a review November 2, 2026 22:39
@shubham-vapiai
shubham-vapiai enabled auto-merge (squash) November 2, 2026 22:42

@shubham-vapiai shubham-vapiai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@manish-vapi tested on his local, solution works and all checks have passed.

Image

@shubham-vapiai
shubham-vapiai merged commit c083df0 into VapiAI:main Nov 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Option to turn off client-side Krisp noise cancellation

2 participants