Interpreting Responses

Overview

As of Knomi Voice Liveness 1.4, the response for /analyze now includes more detailed information in its response. The goal is to empower developers to make more precise decisions based on their requirements.

score

The “score” value is the legacy value that has been present in previous versions of Knomi Voice Liveness. It is a double with 3 possible values:

  • 100 - The subject is considered to be live.

  • 0 - The subject is considered a spoof.

  • -1 - An error was encountered or the subject’s liveness could not be calculated.

The threshold for whether a calculation produces live or spoof result is controlled by the “security_level” parameter in the input request.

As this value is provided for backwards compatibility, we recommend that new integrations use “decision” instead.

decision

The “decision” value precisely reports the decision on whether the subject is considered live, spoof, or could not be calculated. The value is a string that can be one of the following values:

  • LIVE - The subject is considered to be live.

  • SPOOF - The subject is considered a spoof.

  • UNABLE_TO_CALCULATE_LIVENESS - The subject’s liveness could not be calculated.

The threshold for whether a calculation produces live or spoof result is controlled by the “security_level” parameter in the input request.

It is recommended that new integrations use this value.

score_frr

The “score_frr” value contains a double value that represents the false rejection rate, or the rate at which live subjects are wrongly considered a spoof. “score_frr” provides a different way of thresholding than the “security_level”. Higher values correspond to higher usability for users but also lowered security. If you set the score_frr threshold of your system to S, your expected False Reject Rate follows this formula:

1/(10^S)=FalseRejectRate

If you have a desired false rejection rate and want to know the threshold, use this formula:

log10(1/FalseRejectRate) = ScoreThreshold

Here are some example values:

  • 1.0 - 10% False reject rate

  • 1.3 - 5% False reject rate

  • 1.7 - 2% False reject rate

Here are the approximate workflow thresholds:

Alfa

  • 1.48 - 3.3% False reject rate (Alfa6)

  • 1.71 - 1.9% False reject rate (Alfa4)

  • 2.18 - 0.7% False reject rate (Alfa2)

While this can allow you to control the false reject rate, it is important to consider that the security impact as you raise the threshold. Raising it too high may significantly decrease the ability to detect spoofs.

Further, keep in mind that these numbers are all done on Aware’s internal datasets. Exact same performance is not guaranteed.