/v1/verify

POST /v1/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

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

infer_gender_enable

boolean

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

infer_age_enable

boolean

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

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/v1/verify \
     --user '<user>:<passwd>' \
     --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
     --form repository_uri=https://<repository> \
     --form id="<voiceprint_id>" \
     --form min_verification_score=0.6 \
     --form audio=@<path-to-file>/audio.wav

Exemplo de resposta:

{
  "transaction_id": "bmt-verify-46c27e71-2545-4e75-b976-3208ea343cbd",
  "voiceprint": [
    {
      "id": "<voiceprint_id>",
      "verification": {
        "score": 0.661981463432312,
        "decision": "ACCEPTED"
      },
      "error": null
    }
  ],
  "audio_info": [
    {
      "audio_duration": 7915,
      "speech_duration": 2350
    },
    {
      "audio_duration": 3748,
      "speech_duration": 1460
    }
  ]
}