How to use Krisp VIVA 2.0 in livekit?
# ask-ai
b
How to use Krisp VIVA 2.0 in livekit?
✅ 1
t
Thanks for reaching out, Jansen. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Thanks — I can help with that. A couple quick clarifying questions so I give the right instructions: • Which platform are you using LiveKit on? (Web/JS, iOS, Android, or native server-side) • Do you want Krisp VIVA 2.0 for noise suppression on inbound audio (played to participants), outbound audio (microphone capture), or both? • Are you using local client-side processing (integrate Krisp SDK in the app) or a server-side/media-ingest pipeline? • If you’ve already tried anything, what have you implemented and where did you get stuck? (code snippets or error messages are helpful) Once you tell me this, I’ll provide step-by-step integration options and example code for the appropriate platform. , with interactive elements
b
server side typescript
t
Thanks — you're asking how to use Krisp VIVA 2.0 on the server side with TypeScript. LiveKit supports Krisp noise cancellation for telephony/SIP trunks via the
krisp_enabled
flag on trunk creation. I’ll show the approach and next steps. What we can do • Enable Krisp by setting
krisp_enabled: true
when creating SIP inbound trunks or when creating outbound SIP participants/calls. • Use the LiveKit Node.js/TypeScript server SDK (
livekit-server-sdk
) to call the SIP/trunk APIs; the SDK mirrors other language SDKs where SIP options are passed in request objects. Example approach (TypeScript / Node.js) 1. Install the server SDK and import the SIP service/client you use in your code (your project may already have this): ◦
npm install livekit-server-sdk
(if not already installed) 1. Create the SIP inbound trunk with Krisp enabled (pseudo-structure — adapt to the SDK types your version exposes):
Copy code
import { SIPServiceClient, SIPInboundTrunkInfo } from 'livekit-server-sdk';

const sipClient = new SIPServiceClient({ /* auth/config */ });

const trunkInfo: SIPInboundTrunkInfo = {
  // required trunk fields (name, domain, credentials, etc.)
  name: 'my-inbound-trunk',
  // ...
  krisp_enabled: true, // enable Krisp noise cancellation
};

await sipClient.createInboundTrunk(trunkInfo);
1. For outbound calls / SIP participants, include
krisp_enabled: true
when creating the outbound SIP participant or making the outbound call (similar flag on the create call API). Notes and next steps • The docs show Krisp is supported for telephony via the
krisp_enabled
attribute: https://docs.livekit.io/agents/start/telephony/ • I do not have a verbatim TypeScript example in the docs, but the Node SDK supports SIP/trunk operations; the request objects follow the same pattern as the Python examples where
krisp_enabled
is provided. • If you tell me which exact SDK version you’re using and which API call you plan to use (create inbound trunk vs create outbound SIP participant), I can: ◦ Provide a tailored TypeScript snippet matching that SDK version. ◦ Point out required fields for the request object and common errors to watch for. Would you like a concrete snippet for your SDK version or help constructing the exact request body you need? Sources: Agents telephony integration | LiveKit Documentation, with interactive elements