How voice biometrics works, and how it gets fooled
A practical guide for teams that plan to verify people by voice: what a voiceprint is, how attackers fake a voice, how to read a score, when to check during a conversation, and what you need before you enroll anyone.
From speech to a voiceprint
A voiceprint is a compact set of numbers that describes how a person sounds: the shape of their vocal tract, their pitch, their way of speaking. It is a template, not a recording. You cannot play it back.
With Formanta, the voiceprint is returned to you, and you store it in your own database next to the customer or user record.
The name Formanta comes from formants: the resonant frequencies of the vocal tract that make each voice distinct.
Verification
"Is this the person they claim to be?" One new voice against one stored voiceprint. Used in contact centers, apps and voice AI agents.
Identification in a small group
"Which of these people is speaking?" One voice against each member of a household, or each agent in a team.
Free speech or a passphrase
Text-dependent systems ask everyone to say the same enrolled phrase. Text-independent systems work on whatever the person says. Formanta is text-independent: it verifies from natural conversation, in any language, so the check can run while the caller explains why they are calling.
| Text-dependent (passphrase) | Text-independent (Formanta) | |
|---|---|---|
| What the person says | The same phrase every time | Anything, in any language |
| Enrollment | Repeat the phrase several times | A few seconds of normal speech, or past call recordings |
| Extra step for the user | Yes, they have to be asked | No, it runs during the conversation |
| Protection against recordings | A fixed phrase is easy to record and replay | A separate liveness check on every request |
How voices get faked
A few seconds of someone's voice from a video, a voicemail greeting or an earlier call is enough material for an attacker. These are the attacks a voice check has to survive.
Voice cloning
A text-to-speech model is trained on a short sample of the target and then says whatever the attacker types.
Live voice conversion
The attacker speaks, and software turns their voice into the target's voice in real time, so they can answer any question.
Replay
A real recording of the person is played into the call. The voice is genuine, the moment is not.
Audio injection
Digital audio is fed straight into the app or call stream, skipping the microphone. Replay detection alone does not cover it.
ISO/IEC 30107 defines presentation attacks, such as replay, and how to test their detection. CEN/TS 18099 does the same for injection attacks.
Why a voice match alone is not enough
A good clone sounds like the customer, so it can match the customer's voiceprint. A matcher answers "does this voice match?" The question that stops fraud is "is this a live person?" Formanta asks both, about the same audio.
| Who is on the line | Voice match only | Formanta |
|---|---|---|
| The customer, live | Match: verified | Live, same person: verified |
| A recording of the customer | Match: verified | Replay: stopped before matching |
| A clone of the customer's voice | Can match: verified | Deepfake: stopped before matching |
| Someone else, live | No match: rejected | Live, different person: not verified |
Reading the score
Formanta returns probabilities from 0 to 1: how likely the voice is live, and how likely two voiceprints belong to the same person. Turning a probability into a decision is a trade-off between two errors.
- False accept: an impostor gets through. A higher threshold makes this rarer.
- False reject: a genuine customer is turned away. A lower threshold makes this rarer.
You cannot push both to zero, so choose by what a mistake costs. A payment needs a stricter threshold than a balance check.
Equal error rate is the point where both errors are equal: one number to compare systems, lower is better.
Lab numbers are a starting point. Spoof detectors that do well on challenge data often lose accuracy on real-world audio, so test on recordings from your own channel before you set thresholds.
Three zones instead of a yes or a no
Results close to the middle are treated as unclear and sent to a second check, so neither error lands on the customer.
The 0.4 and 0.6 boundaries are an example. Set yours on recordings from your own channel, not on lab audio.
When the voice changes. A cold, a noisy street or a bad line can lower the score of a genuine customer. Keep a fallback method, such as a callback or an app confirmation, and add speech from later calls to the stored voiceprint to keep it current.
When to check during a conversation
Each check is one API call on a piece of audio, so you decide where in the conversation it happens. This matters most for voice AI agents, which need to know who they are talking to before they act.
At the start
Check the first seconds of the call, while the caller says hello and states the reason. Everything after that runs as a verified session.
Before a sensitive action
Let routine questions run without a check, and verify right before a payment, a password reset or a change of contact details.
By risk
Use a stricter threshold, or ask for a step-up, when the request is risky or other signals look wrong.
Again during the call
Send new audio as the call goes on, to catch a handover to another person after the first check passed.
One layer in your defense, not the whole of it
Voice checks work best together with what you already have. Formanta adds the two voice layers; your systems keep the rest.
- YouCall signalsNumber, routing, device and account history.
- FormantaLivenessLive person, voice clone or deepfake, or replay.
- FormantaSpeakerSame person as the enrolled voiceprint.
- YouStep-upCallback to a registered number or an app confirmation when results are unclear.
- YouReviewLog the probabilities for audits, fraud reviews and threshold tuning.
Live, on the call
Check the first seconds of a call before the conversation reaches anything sensitive.
After the call
Check full recordings as background jobs: insurance claims, recorded statements, voicemails, compliance reviews.
Inside authentication
Run the liveness check on the same audio as the voice comparison, before you trust the match.
Consent, retention and re-enrollment
A voice used to identify a person is biometric data. In the EU and the UK it is a special category of personal data under GDPR, and in the US several state laws, such as Illinois BIPA, set their own rules for consent and retention.
This page is not legal advice.
Before you enroll anyone
- Ask first. Explain what a voiceprint is and get explicit consent before you create one. Record the consent in your systems.
- Offer another way. People who decline, or whose voice fails, still need a way to verify.
- Set a retention period. Delete the voiceprint when the account is closed or consent is withdrawn. Formanta does not keep a copy.
- Keep voiceprints current. Voices change slowly over the years. Refresh the voiceprint with speech from recent verified calls.
- Choose where audio goes. Use on-premise or on-device processing when audio must not leave your network or the device.
Test it on your own calls
Thresholds should come from your channel and your customers. We run Formanta on your recordings so you can see the scores before you decide.