/v1/enroll

POST /v1/enroll

Cria ou atualiza um voiceprint biométrico através do upload de arquivo(s) de áudio.

Requisição

A requisição deve estar formatada como multipart/form-data. O primeiro campo, denominado enroll 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

identificador do voiceprint

metainfo

object

Objeto contendo os pares chave-valor a serem associados ao usuário. Este campo é opcional. Se o usuário já existir, as chaves que antes não existiam serão criadas e as chaves que já existiam serão atualizadas. Para apagar uma chave, a mesma deve estar presente com um valor nulo.

min_enrollment_audio

integer

Duração mínima do tempo de fala no áudio para cadastro (em ms). Valor padrão = 1000 (opcional, valor mínimo). Não será possível cadastrar voiceprint com audio com duração mínima do tempo de fala inferior ao padrão.

max_enrollment_audio

integer

Duração máxima do tempo de fala no áudio para cadastro (em ms). Valor padrão = 30000 (opcional). A duração máxima do tempo de fala permitida no cadastro é de 120000 (ms).

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 no cadastro.

Resposta

A resposta é um objeto com os seguintes campos:

  • voiceprint [object] - Resultado da criação do voiceprint

    • id [string] - identificador do voiceprint

    • adapted [boolean] - indica se o cadastro foi atualizado (true) ou criado (false)

    • 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/enroll \
     --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
     --form repository_uri=https://<repository> \
     --form id='997982876428376428' \
     --form audio=@<audio_file.wav>

Exemplo de resposta:

{
  "id": "997982876428376428",
  "transaction_id": "bmt-enroll-e157229b-a2ab-45a1-b85e-5c67646e31d2",
  "adapted": false,
  "audio_info": [
    {
      "audio_duration": 7915,
      "speech_duration": 2280
    }
  ]
}