Answering-machine detection on live calls
Drops the call when a machine answers, so operators talk only to people: ~30 s saved per such call, and machines take 20–40% of calls.
System flow
How it works
The call centre was spending operator time on calls answered by machines: 20–40% of all calls, about 30 seconds each. I trained a model that tells a human from a machine by the first three seconds of audio. It runs as a separate service next to the telephony and decides during the call; if anything goes wrong, the call is treated as human so that no live player is lost. The first version worked worse on real calls: it had learned on 10 seconds of audio but got only 3 in production. After retraining on real conditions, recall went from 79% to 93%. The service was handed over to the VoIP team and runs on the auto-dialer.
- Input
- The first 3 seconds of every outbound call.
- Model
- CatBoost on 184 acoustic features, served by FastAPI and wired into the telephony stack.
- Action
- Drops the call when a machine answers, so operators talk only to people: ~30 s saved per such call, and machines take 20–40% of calls.
- Guards
- Fail-safe: any error counts as a human. Retraining removed the 10 s vs 3 s gap between training and production audio.
- Impact
- Recall 79% → 93%, F1 85% → 95%, false positives 3.6% → 2.9%. Handed over to the VoIP team.