Saltar para o conteúdo

Controlo de qualidade de áudio em direto

Controlo de qualidade de áudio em direto para uma equipa de operações de média · Construído de raiz, a solo, do design ao deploy

Atualizado

Antes

A equipa verificava o áudio dos comentários à mão, pelo que uma falha não detetada podia chegar aos espectadores.

Depois

1 hora

de leituras guardadas no local durante uma falha de rede e reenviadas uma só vez; loudness medido segundo a norma da EBU.

Como funciona
  1. 1Sistema:Local do evento

    Envia o áudio dos comentários em vários canais.

  2. 2Sistema:Agente local

    Mede cada canal segundo as normas de loudness da EBU.

  3. 3Sistema:Agente local

    Guarda as leituras em disco e reenvia-as após uma queda de rede.

  4. 4Sistema:Serviço cloud

    Dispara um alerta quando uma falha dura o suficiente.

  5. 5Pessoa:Operador

    Vê alertas e incidentes na consola web.

Sempre garantido

  • A cloud ignora leituras duplicadas, por isso um reenvio nunca conta duas vezes.

Problema

A equipa monitorizava o áudio dos comentários à mão. Uma falha não detetada arriscava queixas de espectadores, coimas regulatórias e danos de reputação.

Diagnóstico

Os alertas só ajudam se forem completos e discretos. As quedas de rede perderiam leituras, e detetores instáveis inundariam os operadores de falsos alarmes.

Opções que ponderei

  1. A ligação à cloud cai. Como se evita perder leituras?

    Escolhida

    Guardar as leituras em disco no local e reenviá-las; a cloud ignora duplicados

    Uma hora de leituras e um dia de eventos sobrevivem a uma falha, e um reenvio nunca conta duas vezes. Custo: mais peças em movimento na máquina local.

    • Rejeitada

      Manter as leituras em memória e descartar as mais antigas quando enche

      Perde dados durante a falha, precisamente quando importam.

  2. Um detetor liga e desliga. Quando dispara o alerta?

    Escolhida

    Só depois de a falha durar um tempo mínimo, seguido de um período de espera

    Um canal instável não consegue inundar os operadores.

    • Rejeitada

      Alertar a cada oscilação

      Um canal instável enterra os operadores em falsos alarmes.

Solução

Um agente no local mede cada canal e envia as leituras para um serviço na cloud. Os operadores têm uma consola web com projetos, limiares e alertas.

Agente local
  • Python
  • EBU R128 loudness
  • ONNX Runtime
  • PyTorch
  • SpeechBrain
  • Windows build
API na cloud
  • FastAPI
  • SQLAlchemy
  • Alembic
  • PDF reports
Dados
  • TimescaleDB
  • PostgreSQL 17
Consola do operador
  • Next.js
  • React
  • TanStack Query
  • WebSockets
  • uPlot
  • Zustand
Qualidade e entrega
  • Docker Compose
  • GitHub Actions
  • uv
  • Ruff
  • mypy
  • pytest
  • Playwright
  • axe

Números: Definições do buffer do agente