Componentes principais

O sistema é composto por vários módulos que são tipicamente executados em containers Docker. Eles são:

  • API Service: contém a API REST para a execução do processo de transcrição e gerenciamento dos arquivos de áudio.

  • Node Manager: controla o ciclo de vida das instância de processamento.

  • Normalization Executor: executor da etapa de normalização de arquivo de áudio.

  • Diarization Executor: executor da etapa de diarização de arquivo de áudio normalizado.

  • Recognition Executor: executor da etapa de reconhecimento de fala de segmento de fala diarizado.

Adicionalmente, ele ainda conta com os seguintes elementos:

  • MongoDB: banco de dados do sistema.

  • RabbitMQ: message broker para distribuir a carga de trabalho entre o controle do processo e os executores.

  • InfluxDB: banco de dados de série temporal para registro de métricas.

A instalação típica do sistema em ambiente de produção organiza os módulos em dois tipos de servidores ou nós:

  • Nó de Controle: contém os elementos mais leves do sistema, que normalmente não necessitam de escalabilidade, utiliza portanto poucos recursos de hardware. É formado pelos módulos:

    • API Service.

    • Node Manager.

    • Normalization Executor.

    • MongoDB.

    • InfluxDB.

    • RabbitMQ.

  • Nó de Processamento: contém os elementos que consomem uma maior quantidade de recursos de processamento. Possui maior necessidade de hardware e podem ser replicados para aumentar a capacidade do sistema. É formado por:

    • Diarization Executor.

    • Recognition Executor.

    • ASR-Server.