Krisp Turn-Taking

Configuring Krisp turn detection and noise isolation for self-hosted deployments

The agent verb supports Krisp for two features:

  • Turn detection — Krisp’s acoustic end-of-turn model analyzes speech patterns (not just silence) to determine when a user has finished speaking. This produces more natural conversations where users can pause mid-thought without the agent interrupting.
  • Noise isolation — Krisp’s voice isolation removes background noise from the caller’s audio, improving STT accuracy in noisy environments.

Licensing Requirement

Krisp API License Required

Krisp features require a separate Krisp API license key for self-hosted jambonz deployments. This license is not included with the jambonz software license and must be obtained separately.

This requirement does not apply to jambonz.cloud customers — Krisp features are included with all jambonz.cloud plans at no additional cost.

Obtaining a Krisp License

Contact support@jambonz.org to obtain a Krisp API key for your self-hosted deployment. We will provide:

  1. Pricing information based on your expected usage
  2. Your Krisp API key
  3. Configuration instructions for your deployment

Configuration

Once you have obtained your Krisp API key, configure it on your jambonz system using one of the methods below.

New Deployments

When deploying jambonz via AWS CloudFormation or Terraform, provide your Krisp API key as a parameter or input variable during installation. The deployment scripts will configure the system automatically.

Existing Deployments

For systems already deployed, add the Krisp API key to the FreeSWITCH service configuration on the feature-server or mini:

  1. Edit the FreeSWITCH systemd service file:

    $sudo vi /etc/systemd/system/freeswitch.service
  2. Locate the KRISP_LICENSE_KEY environment variable and add your API key:

    1Environment="KRISP_LICENSE_KEY=your-api-key-here"
  3. Reload systemd and restart FreeSWITCH:

    $sudo systemctl daemon-reload
    $sudo systemctl restart freeswitch

Verify Configuration

Once configured, you can use Krisp features in the agent verb:

1session.agent({
2 llm: { vendor: 'openai', model: 'gpt-4.1-mini', /* ... */ },
3 turnDetection: 'krisp', // Enable Krisp turn detection
4 noiseIsolation: 'krisp', // Enable Krisp noise isolation
5 // ...
6}).send();

Alternatives Without Krisp

If you don’t have a Krisp license, you can still build effective voice agents using these alternatives:

Turn Detection Alternatives

OptionConfigurationNotes
STT-based (default)turnDetection: "stt"Uses your STT vendor’s native end-of-utterance detection
Deepgram FluxUse vendor: "deepgramflux" for STTBuilt-in acoustic + semantic turn detection
AssemblyAIUse vendor: "assemblyai" with u3-rt-pro modelNative turn-taking support
SpeechmaticsUse vendor: "speechmatics" for STTBuilt-in turn detection

Noise Isolation Alternative

OptionConfigurationNotes
RNNoisenoiseIsolation: "rnnoise"Open-source, no license required

Usage in the Agent Verb

Turn Detection

1// Krisp turn detection with custom threshold
2session.agent({
3 turnDetection: {
4 mode: 'krisp',
5 threshold: 0.5 // 0.0-1.0, lower = more aggressive
6 },
7 earlyGeneration: true, // Enable speculative LLM prompting
8 // ...
9}).send();

Noise Isolation

1// Krisp noise isolation with custom settings
2session.agent({
3 noiseIsolation: {
4 mode: 'krisp',
5 level: 80, // 0-100, higher = more aggressive
6 direction: 'read' // 'read' (caller audio) or 'write' (outbound)
7 },
8 // ...
9}).send();

See the agent verb reference for complete documentation of these parameters.