DetectifAI builds foundational models to detect audio deepfakes — and the test layer that puts them to work. Verify the authenticity of voice notes, calls and recordings, and prove that a live speaker is who they claim to be.
Genuine 0.624 min · impostor 0.358 max
Sequential — all must pass
Dimensions per speaker
In the fallback chain
Challenge and transcription
Every call centre, every KYC flow, every "it's me, approve the transfer" voice note rests on an assumption that stopped being true: that a voice is hard to fake. Open cloning models reproduce timbre, cadence and accent from a short sample, and the output survives compression, phone codecs and background noise well enough to pass a human listener.
The defensive side has not kept up. Most teams either bolt on a single deepfake classifier and treat its number as truth, or they check identity and never check authenticity at all — which means a perfect clone of an enrolled user walks straight through the front door.
A convincing clone costs nothing and takes under a minute. The attacker does not need to be sophisticated.
Before anyone reaches for a generator, they simply re-submit audio the real user already produced.
Every detector fails on some generator, some codec, some room. A single classifier is a single point of failure.
Detection is not a model, it's a decision — and a decision needs a system around it. The test layer routes every sample through a ranked chain of authenticity engines, holds each one to the same calibrated threshold, falls back the moment an engine is unavailable, and records exactly which engine produced the verdict.
cloud · primary
Synchronous cloud inference on the raw upload. First in line, and the verdict source whenever it answers.
cloud · fallback
A second, independently trained cloud engine. Takes over on timeout, rate limit or outage — no manual failover.
on-device · last resort
Runs locally on CPU with no network call. Keeps a verdict available in air-gapped deployments and total cloud failure.
Exactly one engine's score decides the outcome — the first that answers, in priority order. No silent averaging, no ensemble hiding a disagreement.
Thresholds move only when a measured score distribution says they should. We characterise where each engine degrades and route around it.
Engines are configuration, not architecture. Adding, reordering or removing a detector is an environment change, never a rewrite.
Fail-open with a logged warning keeps a call centre moving; fail-closed makes authenticity a hard gate. Same code, one setting.
Gates run sequentially and short-circuit: a failure at gate one means the speaker model never runs, and a speaker mismatch means we never spend an authenticity call.
One recording of a ~15 second passage, or five short sentences merged into a single template. Each sample passes the same liveness gate before it is allowed to shape the voiceprint, so nobody enrolls a clone.
The console can submit a pre-recorded or synthetic file through the exact pipeline a live microphone uses. It's the fastest way to watch gates one and three do their job — and it's built into the demo.
The speaker gate was calibrated on VoxCeleb1-O: five enrolled speakers verified cross-video, plus three speakers who were never enrolled claiming the identity they scored highest against — the worst case for an impostor.
Cosine similarity against the enrolled template
| Population | n | Min | Mean | Max | Range vs. threshold |
|---|---|---|---|---|---|
| Genuine | 5 | 0.624 | 0.747 | 0.825 |
|
| Impostor | 35 | −0.163 | 0.012 | 0.358 |
|
The tick marks the 0.500 operating threshold. Highest impostor 0.358 sits well below the lowest genuine 0.624 — a clean gap of 0.27 with no overlap. Every cutoff from 0.40 to 0.60 gives zero false accepts and zero false rejects.
35 of 35 impostors rejected.
5 of 5 genuine accepted, including one at 0.624 a naive 0.75 cutoff would reject.
A sanity calibration — not a production EER.
The on-device engine is highly accurate on clean audio but false-positives on compressed recordings — it flagged genuine, heavily-compressed clips at 0.98. Browser captures are compressed, which is precisely why it sits third in the chain behind two cloud engines rather than first. Knowing where an engine fails is what makes ordering it possible; this is the work the test layer exists to do.
The console runs the real pipeline — the same gates, thresholds and engine chain described on this page. Record a passage, verify against it, then inject a file and watch the layer reject it.