nomoVM
Technology

AI answering machine detection: how it works

AI answering machine detection decides from the sound of the answer itself. Where classic AMD counts silences and word lengths, nomoVM's acoustic model hears the difference between a person picking up and a recording playing, in the first 2 seconds of the call.

Why classic AMD gets it wrong

Asterisk's AMD() application, used by VICIdial, GoAutoDial and most Asterisk dialers, is a set of timing rules. It measures how long the line is silent after answer, how long each burst of speech lasts and how many words it hears, then compares them with thresholds in amd.conf. A short "Hello?" followed by silence means human; a long run of speech means machine.

Real answers break those rules every day:

  • A person who answers in a car, says "Hello? ... Hello?" with a pause, or talks to someone else in the room looks like a machine.
  • A short personal greeting looks like a person.
  • Carrier messages, call screening assistants and recorded "Hello?" robots are built to sound human.

Tightening one threshold fixes one mistake and creates another. That is why tuning amd.conf settings rarely helps for long.

The four checks

Every answered call goes through four checks, in this order:

  1. Tone detection

    Busy and reorder tones, special information tones (SIT, "the number you have dialled is not in service"), fax tones and ringback are fixed frequency patterns. A signal-processing detector recognises them in 20 ms steps, before the model is asked. Ringback is a strong sign: in about 3,800 hand-labelled calls it never came before a live answer.

  2. The acoustic model

    A compact neural network turns the first 2 seconds into a log-mel spectrogram, the same kind of picture of sound used in speech recognition, and scores five classes: human, machine speech, call screening, silence and tone. It learned from real 8 kHz answered calls, so it is used to phone-line noise, codecs and accents.

  3. Repeated recordings

    A real person never sounds exactly the same twice; a recording does, even through a different carrier. Each call's audio gets a fuzzy fingerprint, and a call that sounds like two earlier calls, or like one of 1,489 known carrier recordings, is a machine even if it says "Hello?" convincingly.

  4. A safe answer

    Only a confident human is passed as HUMAN. If the service can't judge a call at all, it says so before any audio is used, so your dialplan can run Asterisk's AMD() instead.

The adaptive window

Most calls are clear after 2 seconds, and nomoVM answers then. When the model is unsure, for example a quiet answer or a noisy line, it keeps listening up to 3.2 seconds and decides again with a stricter threshold. That happens on 5 to 9% of calls and raised the share of live people sent to agents from 89.5% to 94.9% in our measurements. See the measured data.

What the verdict means

AMDCAUSEAMDSTATUSMeaning
HUMANHUMANA live person: connect an agent.
MACHINEMACHINEVoicemail greeting or recorded speech, including repeated "Hello?" recordings.
SCREENINGMACHINEA call screening assistant answered (Google Call Screen, iPhone screening).
SILENCEMACHINENothing was said. Usually a hangup or dead line.
TONEMACHINESIT, fax, ringback, dial tone or a voicemail beep.
BUSYMACHINEBusy or reorder tone.
UNKNOWNMACHINENo class was confident enough.

Limits

No answering machine detection is perfect, and anyone who claims 100% is not measuring both kinds of error. In our hand-labelled test, about 5 in 100 live people were still judged as machines, and about 12 in 100 calls sent to agents were not people. We publish these numbers and how we got them on the accuracy page, and the testing guide shows how to check them on your own calls.

Stop sending voicemail to your agents

30,000 calls a month free. No card, no setup fee. Your dialer falls back to Asterisk AMD() on its own if anything goes wrong.