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"}
]