Integração com as APIs

Para o desenvolvimento de uma aplicação com reconhecimento de locutor, é necessário utilizar as APIs do produto CPQD Biometria de Voz. As APIs disponíveis são:

A API deve ser escolhida de acordo com o contexto de uso da aplicação. A API MRCP é utilizada por aplicações de telefonia que suportam o recurso de Speaker Verification and Identification e Speech Recognizer (ASR) conforme a especificação RFC 6787). A plataforma de desenvolvimento da aplicação de telefonia deve dar suporte a esse padrão.

Já a API REST é uma interface mais simples e fácil de ser usada. Ela pode ser utilizada por uma ampla gama de plataformas, desde sistemas que executam em servidores, celulares ou dispositivos diversos. O uso dessa API exige que a aplicação faça a captura e gravação do áudio com a fala do usuário, e que envie os arquivos para o sistema através do protocolo HTTP.

Exemplos com a API REST

Cadastro de voiceprint

Requisição enviando múltiplos arquivos de áudio:

curl --request POST \
     --url https://speech.cpqd.com.br/bio/speakverify/rest/v1/enroll \
     --user '<user>:<passwd>' \
     --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
     --form repository_uri=https://<user>:<passwd>@speech.cpqd.com.br/bio/user \
     --form id='<voiceprint_id>' \
     --form 'metainfo={"<somedata>": "<a_value>"}' \
     --form audio=@<path-to-file>/audio1.wav \
     --form audio=@<path-to-file>/audio2.wav \
     --form audio=@<path-to-file>/audio3.wav

Resposta:

{
  "transaction_id": "bmt-enroll-e157229b-a2ab-45a1-b85e-5c67646e31d2",
  "voiceprint": {
    "id": "<voiceprint_id>",
    "adapted": false
  },
  "audio_info":[
    {
      "audio_duration":3298,
      "speech_duration":1490
    },
    {
      "audio_duration":6198,
      "speech_duration":3960
    }
  ]
}

Verificação

Requisição:

curl --request POST \
     --url https://speech.cpqd.com.br/bio/speakverify/rest/v1/verify \
     --user '<user>:<passwd>' \
     --header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
     --form repository_uri=https://<user>:<passwd>@speech.cpqd.com.br/bio/user \
     --form id="<voiceprint_id>" \
     --form min_verification_score=0.6 \
     --form audio=@<path-to-file>/audio.wav

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":5698,
      "speech_duration":3510
    }
  ]
}

Consulta de metadados do voiceprint

A aplicação pode definir um conjunto de metadados durante a criação de um voiceprint. A requisição a seguir permite recuperar as informações.

curl --request GET \
     --url https://speech.cpqd.com.br/bio/user/v1/user/<voiceprint_id>/metainfo \
     --user '<user>:<passwd>'

Resposta:

{
  "<somedata_1>": "<a_value>",
  "<somedata_2>": "<b_value>"
}

Consulta de detalhes sobre os áudios

A requisição a seguir permite recuperar as informações sobre o histórico dos áudios armazenados durante as operações de cadastro e verificação. A resposta indica a lista de áudios, permitindo o download a partir do identificador de cada arquivo.

curl --request GET \
     --url https://speech.cpqd.com.br/bio/user/v1/user/<voiceprint_id>/audio \
     --user '<user>:<passwd>'

Resposta:

[
  {
    "Entries":[
      {
        "uuid":"f40ca0fd-2f37-4a99-9d79-ef15c8d058cd",
        "session_id":"4a8f01b8-78be-42ab-8641-c3143139d7cb",
        "format":"pcm/16000/16/1",
        "original":true,
        "time":"2021-10-07T13:55:13.777457-03:00",
        "operation":"enroll",
        "score":0.0,
        "tags":null
      },
      {
        "uuid":"5a3b8a33-47be-4df2-ab15-668e5a77dce9",
        "session_id":"4a8f01b8-78be-42ab-8641-c3143139d7cb",
        "format":"pcm/16000/16/1",
        "original":true,
        "time":"2021-10-07T14:42:44.042919-03:00",
        "operation":"verify",
        "score":0.7048876881599426,
        "tags":null
      }
    ]
  },
  {
    "Count":2
  }
]

Download de arquivo de áudio

Com base no identificador uuid do arquivo, a requisição abaixo permite baixar o mesmo.

curl --request GET \
     --url https://speech.cpqd.com.br/bio/user/v1/user/<voiceprint_id>/audio/<uuid>/data \
     --user '<user>:<passwd>'

Resposta: o download do arquivo deve iniciar.

Remoção de arquivo de áudio

Com base no identificador uuid do arquivo, a requisição abaixo permite apagar do histórico.

curl --request DELETE \
     --url https://speech.cpqd.com.br/bio/user/v1/user/<voiceprint_id>/audio/<uuid> \
     --user '<user>:<passwd>'