For the complete documentation index, see llms.txt. This page is also available as Markdown.

Technical specifications

1. Introduction

Facephi Voice Service It is a Rest API service in C++ to which audio files can be sent for processing and the result of the speech recognition process can be obtained. The service offers an endpoint to register (enroll) a new voice, and another to authenticate a voice.

2. Hardware requirements

Minimum requirement
Recommended requirement

CPU

2 cores with support for the SSE4.2 instruction set, >=2GHz

16 cores, with support for AVX2 ISA

RAM

4 GB

8 GB

Disk

4 GB

4 GB SSD

Network

100 Mbps

1 Gbps

3. Software requirements

  • Linux x86_64 (Ubuntu 24.04 or later) with Docker 24.0 or later.

or

  • Windows 10 x64 with Docker 24.0 or later.

4. Enrollment requirements

Three recordings from the same user pronouncing a secret phrase are required, and they must meet the following minimum requirements:

Minimum enrollment requirements
Values

Audio duration

> 700 ms

Relative speech length (*)

> 0.55

Signal-to-noise ratio (SNR) (**)

> 8 dB

(*) Relative speech length = Speech duration / Audio duration (**) The recommended distance from the speaker is 30 cm, a natural distance when using a handheld device

During the recording, only one person should speak. To verify that the enrollment was performed by a single person, the individual biometric templates generated from the three recordings are compared.

Minimum enrollment requirements
Threshold

If the match probability is below the similarity threshold, the registration is rejected and a new recording is requested.

0.55

5. Authentication requirements

Minimum authentication requirements
Values

Audio duration

> 700 ms

Relative speech length

> 0.55

Signal-to-noise ratio (SNR)

> 3 dB

6. Metrics

There are two common channels through which voice biometric validation is applied: via microphones or telephone lines.

Metrics extracted for the microphone use case (new noctua version).

Threshold
FAR (%)
FRR (%)

0.5

0.17

3.32

7. Security recommendations

  • Keep auth_jwt_secret in a secret store or in an injected environment variable, instead of including it directly in the container images.

  • Optional JWT authentication is configured at startup from config.json or through the environment variables FACEPHI_VOICE_REST_AUTH_*.

  • The public endpoints that remain unauthenticated are GET /api/v1/health, GET /api/v1/version and the preflight requests OPTIONS.

  • GET /api/v1/config never exposes the JWT startup settings and POST /api/v1/config cannot modify them.

Metrics extracted for the telephone use case.

Threshold
FAR (%)
FRR (%)

0.5

1

9.12

FAR (False Acceptance Rate, false acceptance rate) is the probability that the system incorrectly accepts an impostor as a legitimate user.

FRR (False Rejection Rate, false rejection rate) is the probability that the system incorrectly rejects a legitimate user.

7. liveness detection (liveness)

Minimum requirements for liveness detection
Values

Speech length for Replay Attack detection

> 1000 ms

Speech length for Voice Clone Attack detection

> 3000 ms

Signal-to-noise ratio (SNR)

> 10 dB

Recommended thresholds for liveness detection
Threshold

Liveness validation will be considered successful when the value is above the threshold.

0.5

Last updated