> 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/api-rest/midapi-v2/voice-services/voice-enrollment.md).

# Voice Enrollment

Servicio que genera una plantilla de voz a partir de los audios de la captura y devuelve el resultado de validación de cada audio.

### Endpoint

```
POST /biometric/voice/enrollment
```

### Headers

| Nombre            | Tipo   | Requerido | Descripción                                                                                               |
| ----------------- | ------ | --------- | --------------------------------------------------------------------------------------------------------- |
| **Authorization** | string | **Sí**    | Token de consumer en formato `Bearer <token>`. Ver [Autenticación](/api-rest/midapi-v2/autenticacion.md). |
| **consumer-id**   | string | **Sí**    | Identificador del consumer.                                                                               |

### Cuerpo de la solicitud

**Content-Type:** `application/json`

#### Parámetros

| Parámetro | Tipo  | Requerido | Descripción                                                |
| --------- | ----- | --------- | ---------------------------------------------------------- |
| `audios`  | array | **Sí**    | Audios de la captura, en Base64, en el orden de grabación. |

#### Ejemplo de solicitud

```json
{
  "audios": ["<base64 audio 1>", "<base64 audio 2>", "<base64 audio 3>"]
}
```

### Respuestas

#### `200` Éxito

#### Parámetros de respuesta

| Parámetro              | Tipo    | Descripción                                                           |
| ---------------------- | ------- | --------------------------------------------------------------------- |
| `consumerId`           | string  | Identificador del consumer que realizó la llamada.                    |
| `transactionId`        | string  | Identificador de la transacción.                                      |
| `timestamp`            | string  | Marca de tiempo de la respuesta en formato **ISO 8601**.              |
| `message`              | string  | Campo descriptivo del resultado de la ejecución del servicio.         |
| `operationResult`      | integer | Código de resultado de la ejecución del servicio.                     |
| `template`             | string  | Plantilla de voz resultante.                                          |
| `templateType`         | string  | Tipo de plantilla generada.                                           |
| `validateAudiosResult` | array   | Resultado por audio. Ver [Resultado por audio](#resultado-por-audio). |

#### Resultado por audio

| Parámetro                          | Tipo    | Descripción                                       |
| ---------------------------------- | ------- | ------------------------------------------------- |
| `audio_position`                   | integer | Posición del audio en la petición.                |
| `result_code`                      | integer | Código de resultado del audio.                    |
| `matching_score`                   | number  | Puntuación de coincidencia del audio.             |
| `snr_db_detected`                  | number  | Relación señal-ruido detectada, en decibelios.    |
| `speech_length_ms_detected`        | integer | Duración de habla detectada, en milisegundos.     |
| `speech_relative_length_detected`  | number  | Proporción de habla respecto a la duración total. |
| `multiple_speakers_score_detected` | number  | Puntuación de detección de varios hablantes.      |

#### Otras respuestas

| Código | Descripción                                                           |
| ------ | --------------------------------------------------------------------- |
| `400`  | Campo obligatorio ausente o audio con formato no admitido.            |
| `401`  | Token ausente, inválido o caducado.                                   |
| `403`  | El consumer no está aprovisionado con el servicio `VOICE_ENROLLMENT`. |

El cuerpo de una respuesta de error tiene la forma descrita en [Middleware API v2](/api-rest/midapi-v2.md#respuestas-de-error).
