API de Consultas¶
Aviso
Essa API está em estágio experimental de desenvolvimento
A API de Consultas permite recuperar informações sobre os arquivos de transcrição diretamente na base do sistema, de uma forma bastante simplificada. O sistema utiliza o banco de dados MongoDB, e portanto os registros são armazenados no formato Binary JSON (veja maiores detalhes aqui).
Consulta de transcrição de arquivo¶
Permite recuperar os registros dos arquivos de áudio, utilizando campos do registro filtros. É possível também definir quais campos devem ser recuperados, através do recurso de projeção. Um registro de arquivo de áudio possui os seguintes campos:
{
"_id": ObjectId("5c82ae28e49363000aac91d2"),
"create_date": ISODate("2019-03-08T18:02:16.383Z"),
"last_update": ISODate("2019-03-08T18:02:16.383Z"),
"batch": "teste",
"domain_id": null,
"filename": "Call1_50_6153919190348676479_1_149_0251.wav",
"status": "RECOGNIZED",
"control": "FINISHED",
"format": "wav",
"metadata": {},
"md5": "ab978e3f74f18675150f7c10429ce1ef",
"size": 8320044
}
Requisição
GET /trd/query/transcription
Parâmetros da requisição
Os campos do registro podem ser usados como filtros. Utilize o nome do campo como parâmetro de query e o valor desejado. Opcionalmente, é possível definir os campos a serem retornados na consulta, através de um ou mais parâmetros de query projection.
Resultado
Lista de documentos que representam os arquivos de áudio.
Exemplos
Chamada REST: Consulta arquivos do lote “teste” com falha, recuperando apenas o nome do arquivo e a etapa do processo em que ocorreu a falha.
curl -X GET http://localhost:8080/trd/query/transcription?control=FAILED&batch=teste&project=filename
Resultado JSON:
[
{"filename": "20180416173702@10.212.3.975060.wma", "status": "NORMALIZING"},
{"filename": "201543718_3c0240661e966030-1_19_13203.wav", "status": "DIARIZING"},
{"filename": "201524448_0018c1071e9658a3-1_19_11172.wav", "status": "DIARIZING"},
{"filename": "201533833_3c02400c1e965c63-1_19_29500.wav", "status": "DIARIZING"},
{"filename": "201544139_3c02404e1e966054-1_19_27047.wav", "status": "DIARIZING"}
]
Consulta de Estado de Lote¶
Permite consultar o estado de um lote de transcrição. É possível utilizar campos do registro filtros e definir quais campos devem ser recuperados, através do recurso de projeção.
Requisição
GET /trd/query/collection/BatchStatus
Exemplos
Chamada REST: Consulta do estado do lote “teste”.
curl -X GET http://localhost:8080/trd/query/collection/BatchStatus?batch=teste
Resultado JSON:
[
{
"_id": {
"$oid": "5c6d4e72ab1b3a3fbd25c1cf"
},
"batch": "teste",
"diarization": 1,
"normalization": 0.9999489889531006,
"recognition": 1,
"ETA": 1.4165429545417598,
"_timestamp": 1550696709.4921668,
"accounted_control": {
"FINISHED": {
"bytes": 545893118,
"files": 1958
},
"FAILED": {
"bytes": 27848,
"files": 1
}
},
"accounted_recognition": {
"RECOGNIZED": {
"seconds": 325106.392,
"segments": 118767
},
"NO_MATCH": {
"seconds": 1106.4570000000006,
"segments": 1615
}
},
"accounted_status": {
"RECOGNIZED": {
"bytes": 545893118,
"files": 1958
},
"NORMALIZING": {
"bytes": 27848,
"files": 1
}
},
"progress": 0.9999489889531006,
"speech2audio_rate": 0.5975103566702527,
"speech2audio_rate_ch": 0.5975103566702527,
"total_audio": 545953.464,
"total_audio_ch": 545953.464,
"total_bytes": 545920966,
"total_files": 1959,
"total_segments": 120382,
"total_speech": 326212.849
}
]
Chamada REST: Consulta do “ETA” de todos os lotes
curl -X GET http://localhost:8080/trd/query/collection/BatchStatus?project=ETA&project=batch
Resultado JSON:
[
{"batch": "teste_abril_1", "ETA": 0},
{"batch": "teste_abril_2", "ETA": 8.066216741369928},
{"batch": "teste_abril_3", "ETA": 0},
{"batch": "teste_abril_4", "ETA": 1.4165429545417598},
{"batch": "teste_maio", "ETA": 0},
{"batch": "poc_cliente_full", "ETA": 693.1271296927629}
]
Consulta de Segmentos de Fala¶
Permite consultar os segmentos de fala de um arquivo de áudio. É possível utilizar campos do registro filtros e definir quais campos devem ser recuperados, através do recurso de projeção.
Requisição
GET /trd/query/collection/SpeechSegment
Exemplos
Chamada REST: Consulta de textos trascritos de um lote.
curl -X GET http://localhost:8080/trd/query/collection/SpeechSegment?batch=teste&project=speaker&project=text&project=score
Resultado JSON:
[
{"speaker": "2", "score": 100, "text": "seguradora cristina fernandes bom dia"},
{"speaker": "1", "score": 90, "text": "bom dia"},
{"speaker": "2", "score": 89, "text": "oi francisca tudo bem"},
{"speaker": "1", "score": 99, "text": "tudo bem é"},
{"speaker": "1", "score": 70, "text": "sim eu estou te ligando por causa de um probleminha com sua parcela"},
{"speaker": "2", "score": 83, "text": "eu vou desistir da compra"},
{"speaker": "2", "score": 92, "text": "obrigado tchau"}
]