For voice-AI agents
Your agent hears the caller, not the room.
Calls come from busy homes, shops and streets. packethush removes the other voices before your VAD and speech recognition hear them.
What your LLM receives.
A Hindi caller at home, with a second voice across the room as loud as he is, transcribed by Deepgram nova-3. Struck out: the other voice's words.
Ma'amमुझेआपकेhotelमेंroombookकरनाथा.यहांभेजनाहै.Ma'amहमदोसेतीनलोगहैं.आपमुझेroomकेबारेमेंजानकारीदेसकतेहैं?सबphoneएकएकkiloसबphoneहै.Ma'amआपकाhotelहै.Restaurantहैयाहमेंबाहरसेखानाorderकरनापड़ेगा?
Ma'am,मुझेआपकेhotelमेंroombookकरनाथा.Ma'am,दोसेतीनलोगहैं.आपमुझेroomकेबारेमेंजानकारीदेसकतेहैं?आपकाhotelहै,restaurantहैयाहमेंबाहरसेखानाorderकरनापड़ेगा?
Three ways a second voice breaks a voice agent.
Words from someone else
The recogniser writes down everyone in the room, and your LLM acts on it.
64% fewer
words the caller never said: 17.9 → 6.5 per call · 95% CI 61–67% · 1,152 Hindi test calls
False barge-ins
A background voice sounds like the caller interrupting. Your agent stops mid-sentence.
Other voice: flagged
its own event, apart from the caller's
Turn-taking
Noise blurs when the caller starts and stops. Your agent cuts in early or waits too long.
99.8% right, when sure
“caller speaking” every 20 ms, calibrated · sure on 58% of frames
In your pipeline, before VAD.
One session per call leg. Every packet in, the same length out, cleaned, with events.
- 1when your agent starts: open the engine
- 2when a call connects: open its session
- 3each packet: the caller's audio back, 12 ms later
- 4caller started: stop talking (barge-in)
- 5caller stopped: take the turn
- Python · Go · Rust · C
- any chunk size
- 8 or 16 kHz
import packethush
engine = packethush.Engine()
call = engine.session(sample_rate=8000)
def on_packet(pcm16: bytes) -> bytes: # every packet from your telephony
clean = call.process(pcm16)
for e in call.events():
if e.type == "caller_started":
agent.stop_speaking()
elif e.type == "caller_stopped":
agent.take_turn()
return clean # on to your VAD and speech recognitionProve it on your own calls.
Run your recorded calls through the evaluation kit.
Both versions go through your speech engine: word errors, with 95% intervals.
A paced load test: how many calls your servers carry.
Try it on your agent's calls.
A trial licence and the evaluation kit: word errors before and after, with your own speech engine.
Request access