/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

min_verification_score

double

valor mínimo do limiar de aceitação.

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)

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 seguido de um contador numérico iniciado em 1 (e.g. audio1, audio2, etc). Esses campos devem conter os áudios a serem utilizados em cada verificação, sendo um áudio para cada voiceprint indicado no campo verify.id.

Resposta

A resposta é um objeto com os seguintes campos:

  • voiceprint [array] - Lista de objetos contendo o resultado para cada voiceprint.

    • id [string] - Identificador do voiceprint.

    • verification [object] - Objeto contendo o resultado da verificação.

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

      • decision [string] - Decisão baseado no limiar de confiança e outros critérios. Os valores válidos são: accepted, rejected, undecided.

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

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

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

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

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

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

Exemplo:

Chamada REST enviando o audio via multipart:

curl --insecure --request POST \
     --url https://<speech_server>/speakverify/rest/v1/verify \
     --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
     --form repository_uri=https://<repository> \
     --form id='997982876428376428' \
     --form min_verification_score=0.5 \
     --form audio=@<audio_file.wav>

Exemplo de resposta:

{
  "id": "997982876428376428",
  "transaction_id": "bmt-verify-46c27e71-2545-4e75-b976-3208ea343cbd",
  "verification": {
    "verification_score": 0.661981463432312,
    "decision": "ACCEPTED"
  },
  "audio_info": [
    {
      "audio_duration": 7915,
      "speech_duration": 2350
    }
  ]
}