> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/sdks/backend-sdk/voice/technical_documentation/api_reference/authentication/api-v1-authentication.md).

# /api/v1/authentication

Este endpoint se utiliza para autenticar una voz. Recibe un archivo de audio y una plantilla de voz, y devuelve un valor booleano que indica si la voz pertenece a la misma persona que la de la plantilla de voz, así como una probabilidad que indica la similitud entre ambas voces.

```json
{"openapi":"3.0.1","info":{"title":"API REST de Voice-Service","version":"3.2.0"},"servers":[{"url":"http://127.0.0.1:6982/"}],"security":[{"BearerAuth":[]},{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Nombre por defecto de la cabecera de la API key. Puede sobrescribirse en el arranque con `auth_api_key_header_name`."}},"schemas":{"AuthenticationBody":{"type":"object","description":"Cuerpo (body) de la petición de authentication","properties":{"audio":{"$ref":"#/components/schemas/AudioBuffer"},"template":{"$ref":"#/components/schemas/AudioTemplate"},"check_liveness":{"$ref":"#/components/schemas/CheckLiveness"},"check_quality":{"$ref":"#/components/schemas/CheckQuality"},"liveness_threshold":{"$ref":"#/components/schemas/LivenessThreshold"},"minimum_snr_db":{"$ref":"#/components/schemas/MinimumSnrDb"},"minimum_speech_duration_ms":{"$ref":"#/components/schemas/MinimumAudioLengthMs"},"minimum_speech_relative_length":{"$ref":"#/components/schemas/MinimumSpeechRelativeLength"},"maximum_multiple_speakers_detector_score":{"$ref":"#/components/schemas/MaximumMultipleSpeakersDetectorScore"},"extra_data":{"$ref":"#/components/schemas/ExtraData"}},"required":["audio","template"]},"AudioBuffer":{"type":"string","description":"Buffer de audio en bruto en formato WAV, OPUS/OGG, MP3 o AAC, codificado en base64 RFC4648. El audio puede estar cifrado o no."},"AudioTemplate":{"type":"string","description":"Buffer de la plantilla biométrica (template), obtenido de Enrollment(), cifrado y codificado en base64 RFC4648."},"CheckLiveness":{"type":"boolean","default":false,"description":"Si es true, se realizará una prueba de vida (liveness)"},"CheckQuality":{"type":"boolean","default":true,"description":"Si es true, se realizará una comprobación de calidad"},"LivenessThreshold":{"type":"number","default":0.5,"description":"Umbral para la detección de vida (liveness). Si la probabilidad de vida es inferior a este valor, el audio se considera inválido."},"MinimumSnrDb":{"type":"number","description":"SNR mínimo en dB para que el audio se considere válido.","default":8},"MinimumAudioLengthMs":{"type":"number","description":"Duración mínima del audio en milisegundos para que se considere válido.","default":1000},"MinimumSpeechRelativeLength":{"type":"number","description":"Longitud relativa mínima del habla (longitud del habla en relación con la duración total del audio).","default":0},"MaximumMultipleSpeakersDetectorScore":{"type":"number","description":"Puntuación máxima permitida del detector de múltiples hablantes.","default":1},"ExtraData":{"type":"string","description":"Datos tokenizados para invocar al servicio Api Tracking tras la operación, codificados en base64."},"AuthenticationResponse":{"type":"object","description":"Respuesta de authentication","properties":{"operation_result":{"$ref":"#/components/schemas/OperationResult"},"match":{"$ref":"#/components/schemas/Match"},"liveness_score":{"$ref":"#/components/schemas/LivenessScore"},"matching_score":{"$ref":"#/components/schemas/MatchingScore"},"snr_db_detected":{"$ref":"#/components/schemas/SnrDbDetected"},"speech_length_ms_detected":{"$ref":"#/components/schemas/SpeechLengthMsDetected"},"speech_relative_length_detected":{"$ref":"#/components/schemas/SpeechRelativeLengthDetected"},"multiple_speakers_score_detected":{"$ref":"#/components/schemas/MultipleSpeakersScoreDetected"},"tracking_status":{"$ref":"#/components/schemas/TrackingStatus"},"tracking_message":{"$ref":"#/components/schemas/TrackingMessage"}}},"OperationResult":{"type":"number","description":"Resultado de la operación.","enum":["NOISY                          = 0","LONG_REVERBERATION             = 1","SMALL_SPEECH                   = 2","OK                             = 3","NOT_EVALUATED                  = 4","SPOOF                          = 5","DUPLICATED_AUDIO               = 6","DIFFERENT_VOICES               = 7","EMPTY_AUDIO                    = 8","TOO_MANY_AUDIOS                = 9","NOT_ENOUGH_GOOD_AUDIOS         = 10","CONFIG_MANAGER_ERROR           = 11","INVALID_LICENSE                = 12","EXPIRED                        = 13","SUSPENDED                      = 14","E_SYSTEM_PERMISSION            = 15","E_WMIC                         = 16","E_INET                         = 17","E_NET_PROXY                    = 18","E_REVOKED                      = 19","E_LICENSE_KEY                  = 20","E_ACTIVATION_LIMIT             = 21","E_VM                           = 22","E_COUNTRY                      = 23","E_IP                           = 24","E_CONTAINER                    = 25","DATA_NOT_FOUND                 = 26","ENVIRONMENT_VARIABLE_NOT_FOUND = 27","SMALL_RELATIVE_SPEECH          = 28","MULTIPLE_SPEAKERS              = 29"]},"Match":{"type":"boolean","description":"Indica si el audio coincide con la plantilla (template)"},"LivenessScore":{"type":"number","description":"Probabilidad de vida (liveness)"},"MatchingScore":{"type":"number","description":"Probabilidad de coincidencia (matching)"},"SnrDbDetected":{"type":"number","description":"SNR en dB detectado en el audio."},"SpeechLengthMsDetected":{"type":"number","description":"Duración del habla en milisegundos detectada en el audio."},"SpeechRelativeLengthDetected":{"type":"number","description":"Longitud relativa del habla detectada en el audio."},"MultipleSpeakersScoreDetected":{"type":"number","description":"Puntuación de múltiples hablantes detectada en el audio."},"TrackingStatus":{"type":"number","description":"Estado devuelto por el servicio Api Tracking, o -1 si no se requiere tracking."},"TrackingMessage":{"type":"string","description":"Mensaje devuelto por el servicio Api Tracking, o vacío si no se requiere tracking."},"BadRequestResult":{"type":"object","description":"Resultado cuando llegan parámetros incorrectos en la petición.","properties":{"status":{"type":"number"},"error":{"type":"string"},"timeStamp":{"$ref":"#/components/schemas/TimeStamp"}}},"TimeStamp":{"type":"string","description":"Un valor de fecha/hora en formato \"%Y-%m-%dT%H:%M:%SZ\"."},"ExceptionResult":{"type":"object","description":"Se ha producido un error en la llamada al backend de Voice-SDK.","properties":{"status":{"type":"number"},"error":{"type":"string"},"exception":{"type":"string"},"timeStamp":{"$ref":"#/components/schemas/TimeStamp"}}}}},"paths":{"/api/v1/authentication":{"post":{"description":"Este endpoint se utiliza para autenticar una voz. Recibe un archivo de audio y una plantilla de voz, y devuelve un valor booleano que indica si la voz pertenece a la misma persona que la de la plantilla de voz, así como una probabilidad que indica la similitud entre ambas voces.","tags":["Authentication"],"requestBody":{"description":"Json con la voz de entrada y la plantilla cifradas y codificadas en formato base64 RFC4648","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationBody"}}}},"responses":{"200":{"description":"El resultado de la autenticación. Los campos *_detected solo están presentes cuando falla la comprobación de calidad del audio.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthenticationResponse"}}}},"400":{"description":"Han llegado parámetros incorrectos en la petición.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResult"}}}},"500":{"description":"Se ha producido un error en la llamada al backend de Voice-SDK.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExceptionResult"}}}}}}}}}
```
