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>'