02 / Developer
Two SDKs. Three adapters. No glue code.
The hard parts of a live voice session — reconnect, lookback, speak-gating, turn queueing — are in the client, not in your application.
01
Install
# Python 3.10+
pip install vsip-sdk # import vsip
# Node 18+ / browsers
npm install vsip-sdkThe Python package ships type hints (py.typed); the TypeScript package ships its own declarations. Optional extras pull in the framework adapters: vsip-sdk[pipecat], vsip-sdk[livekit].
02
What the client handles for you
Reconnect & resume
Network blips do not end the session. The client reconnects and resumes the stream where it left off, without losing the identity lock.
Lookback slicing
The first words of a turn are usually the ones the VAD swallowed. The SDK keeps a rolling buffer and hands you the whole utterance.
Speak gating
The session knows when your agent is talking, so its own TTS never opens a turn or triggers a barge-in against itself.
Turn queueing
Turns that arrive while you are still generating a reply are queued, not dropped — so a fast second sentence is not lost.
Typed events
Every event is a typed object in both languages, and the parser tolerates unknown fields so a server-side addition never crashes your client.
Profiles & analyze
The same package carries the Speaker Profile and Batch Analytics clients — one dependency, all four products.
03
Framework adapters
Each adapter is a real integration against the framework's own extension point — not a wrapper you have to babysit.
04
Same session, both languages
import { VSIPClient } from "vsip-sdk";
const client = new VSIPClient({ apiKey: process.env.VSIP_KEY! });
const session = await client.stream({ sampleRate: 16000 });
session.on("turn_end", async (e) => {
if (!e.should_respond) return; // not the verified speaker
await tts.speak(await llm(e));
});
session.on("barge_in", () => tts.stop());