POST /v2/verify

Realiza a verificação biométrica com o upload de um arquivo de áudio.

Requisição

A requisição deve estar formatada como multipart/form-data. O primeiro campo, denominado verify deve ser um objeto JSON e conter os seguintes campos:

Campo

Tipo

Descrição

repository_uri

string

URL do repositório biométrico

id

string

lista separada por vírgulas com os identificadores de voiceprint. O envio de mais de um voiceprint realiza a identificação biométrica (1:N)

min_verification_score

double

valor do limiar de aceitação (opcional).

min_verification_audio

integer

duração mínima do tempo de fala no áudio para verificação (em ms). Valor padrão = 3000 (opcional)

max_verification_audio

integer

duração máxima do tempo de fala no áudio para verificação (em ms). Valor padrão = 10000 (opcional)

logging_tag

string

campo livre inserido no log e histórico para permitir o rastreio da requisição (opcional)

infer_emotion_enable

boolean

Indica se deve ser executada a classificação de emoção. Valor padrão = false (opcional)

infer_gender_enable

boolean

Indica se deve ser executada a classificação de gênero. Valor padrão = false (opcional)

infer_age_enable

boolean

Indica se deve ser executada a classificação de idade. Valor padrão = false (opcional)

A seguir devem ser especificados um ou mais campos, nomeados pelo prefixo audio. Esses campos devem conter os áudios a serem utilizados em cada verificação.

Resposta

A resposta é um objeto com os seguintes campos:

  • transaction_id [string] - Identificador da transação, útil para rastreio em log e histórico

  • voiceprint [array] - Lista de objetos contendo o resultado para cada voiceprint. Cada objeto tem o formato abaixo:

    • id [string] - Identificador do voiceprint.

    • verification [object] - Objeto contendo o resultado da verificação, caso o voiceprint tenha sido recuperado.

      • score [double] - score da verificação biometria.

      • decision [string] - Decisão baseado no limiar de aceitação e outros critérios. Os valores válidos são: ACCEPTED, REJECTED, UNDECIDED.

    • error [object] - Indica a ocorrência de um erro na verificação desse voiceprint (opcional).

      • code [string] - código do erro

      • message [string] - mensagem com detalhamento do erro

  • audio_info [array] - Vetor de objetos com informações sobre os áudios utilizados.

    • audio_duration [integer] - duração do áudio (ms)

    • speech_duration [integer] - duração da fala (ms)

    • gender_scores [object] - resultado da classificação de gênero (opcional)

    • age_scores [object] - resultado da classificação de idade (opcional)

    • emotion_scores [object] - resultado da classificação de emoção (opcional)

Exemplo:

Chamada REST enviando o audio via multipart:

curl --request POST \
  --url https://<speech_server>/speakverify/rest/v2/verify \
  --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
  --form 'verify={
      "repository_uri": "https://<repository>",
      "min_verification_score": "0.5",
      "min_verification_audio": "1000",
      "id": "<voiceprint_id>"
    }' \
 --form audio=@<path-to-file>/audio1.wav

Exemplo de resposta:

{
  "voiceprint": [
    {
      "id": "ed8faee6-b9d8-4181-b295-7b4015a2591c",
      "verification": {
        "score": 0.5886724591255188,
        "decision": "ACCEPTED"
      },
      "error": null
    }
  ],
  "audio_info": [
    {
      "audio_duration": 3640,
      "speech_duration": 3580,
      "gender_scores": {},
      "age_scores": {},
      "emotion_scores": {}
    }
  ],
  "transaction_id": "bmt-verify-e676c82b-314c-44c1-8e3d-1923b00e1f01"
}