MARTIMUSBusiness Algorithms

Technical note

Answering-Machine Detection and the Honest Ceiling

Deciding whether a person or a machine answered a call sounds like a solved problem. It is not, and the systems that handle it well are the ones built around that fact rather than around a vendor's accuracy claim.

There is no flawless detector

Answering-machine detection — deciding, in the first seconds of an answered call, whether a human or a recording is on the line — has a practical accuracy ceiling of roughly 96 to 98 percent. That figure holds across commercial platforms and open-source implementations alike. It has not been beaten by throwing a larger model at it, and it is not a limitation of any one product.

The reason is that the problem is genuinely ambiguous at the edges. A person who answers with a long, flat, scripted greeting looks like a recording. A short voicemail greeting with background noise looks like a person saying hello. Carriers, codecs, and handsets all reshape the audio before anyone gets to analyze it. Some fraction of calls simply do not carry enough signal in the window available to decide.

This matters because most systems are designed as though the detector will be right. The better design assumes it will sometimes be wrong, decides in advance which way it should be wrong, and makes that behavior explicit.

The beep is the wrong signal for the wrong question

The most common implementation listens for the voicemail beep. It is intuitive and it is a mistake, for three reasons.

  • It is far too late. Greetings routinely run fifteen seconds or longer before the beep. A system that waits for it has already burned the window in which a human would have expected a response.
  • It is not universal. Some voicemail systems produce no beep, produce several, or produce a tone that does not match what the detector was tuned for.
  • It answers a different question. A beep tells you when a recording is ready to receive audio. It does not tell you whether a person is there.

Two phases, two questions

The architecture that works separates the problem into two independent detectors reading the same audio stream and answering different questions.

  1. Phase one — classification. Who is on the line? This is decided from the temporal structure of the audio: the length and rhythm of speech, the placement and duration of silences, whether the far end pauses to listen. Voice-activity analysis over the first seconds separates the two cases far earlier and far more reliably than any tone detector, because a human greeting and a recorded one have measurably different shapes.
  2. Phase two — timing. If it is a machine, when should the message start? This is where beep detection belongs, and it is a good tool for exactly this job. It never has to decide who answered; it only has to decide when to begin.

Keeping these separate is the whole point. One combined detector has one confidence score, one threshold, and one failure mode. Two detectors can be measured, tuned, and allowed to fail independently — and a failure in timing does not become a failure in classification.

Setting an honest threshold

Because the ceiling is real, the useful engineering question is which error you can afford. The two mistakes are not symmetric:

  • Treating a human as a machine — the caller is cut off or talked over. Expensive: it costs a real conversation and it damages the relationship.
  • Treating a machine as a human — a few seconds are wasted before the system corrects itself. Cheap by comparison.

So the threshold should be deliberately asymmetric, and the uncertain middle should not be forced into a decision. Cases the classifier is not confident about should fall through to a safe default or to a person, rather than being resolved by a marginal score. This is the same principle we apply to every intelligent system: the machine proposes, and where the stakes justify it, a human disposes.

What this generalizes to

Answering-machine detection is a small, unusually well-measured example of a pattern that appears in every applied-intelligence system we build. There is a real ceiling. The naive signal is the obvious one and the wrong one. Splitting one hard question into two easier questions beats scaling a single model at the combined problem. And the accuracy number matters far less than what the system does with the cases it cannot call.

The same reasoning drives our approach to matching, classification, and document work. See the hybrid rules and language models note, or our AI engineering principles.

Generalized deliberately. Accuracy figures reflect the state of the field, not a claim about any specific Martimus or client deployment. Specific configurations are not disclosed here.

Discuss a Project Intelligence capability

FAQ

Answering-machine detection: questions we get asked.

Is there a flawless answering-machine detector?

No. Across commercial and open-source detectors the practical accuracy ceiling sits at roughly 96 to 98 percent. Any vendor claiming a perfect detector is either measuring on an easy dataset or not counting the failures honestly. The engineering question is not how to reach 100 percent — it is which errors you can afford and what the system does when it is unsure.

Why is detecting the beep the wrong way to detect a machine?

The beep answers a different question. By the time a beep arrives the decision about who is on the line is long overdue, many greetings run for fifteen seconds or more before it, and some voicemail systems produce no beep at all. Beep detection is excellent for deciding when to start speaking; it is a poor and slow signal for deciding whether a human is there.

What is the two-phase architecture?

Two independent detectors answering two different questions from the same audio. Phase one classifies human versus machine from the temporal shape of speech and silence in the first seconds. Phase two listens for the beep purely to time the start of a message. Splitting them lets each be tuned, measured, and failed independently.

What accuracy target should a business actually set?

It depends on which error is expensive. Cutting off a live human is usually far more costly than treating a machine as a human, so the threshold should be set asymmetrically and the residual uncertainty should route to a person or to a safe default — not be resolved by a coin flip inside the detector.