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:

{
  "id":"<voiceprint_id>",
  "transaction_id":"bmt-enroll-5d6e9d9f-7380-4573-b46e-0a7664234a92",
  "adapted":false,
  "audio_info":[
    {
      "audio_duration":3298,
      "speech_duration":1490
    },
    {
      "audio_duration":6198,
      "speech_duration":3960
    },
    {
      "audio_duration":3798,
      "speech_duration":2040
    }
  ]
}

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>/audio1.wav

Resposta:

{
  "id":"<voiceprint_id>",
  "transaction_id":"bmt-verify-061d6e5c-14da-42bc-9ca0-dd389730ebe4",
  "verification":{
    "score":0.6376913189888,
    "decision":"ACCEPTED"
   },
   "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>/data \
     --user '<user>:<passwd>'