Saltar al contenido

Control de calidad de audio en directo

Control de calidad de audio en directo para un equipo de operaciones de medios · Desarrollo desde cero, en solitario, del diseño al despliegue

Actualizado

Antes

El personal revisaba a mano el audio de comentarios, así que un fallo podía llegar a los espectadores.

Después

1 hora

de lecturas conservadas en el sitio durante una caída de red y reenviadas una sola vez; sonoridad medida según la norma EBU.

Cómo funciona
  1. 1Sistema:Sede

    Envía el audio de los comentarios por muchos canales.

  2. 2Sistema:Agente local

    Mide cada canal según las normas de sonoridad de la EBU.

  3. 3Sistema:Agente local

    Guarda las lecturas en disco y las reenvía tras una caída de red.

  4. 4Sistema:Servicio en la nube

    Lanza una alerta cuando un fallo dura lo suficiente.

  5. 5Persona:Operador

    Ve alertas e incidentes en la consola web.

Siempre activo

  • La nube ignora las lecturas duplicadas, así que una repetición nunca cuenta dos veces.

Problema

El personal supervisaba a mano el audio de los comentarios. Un fallo no detectado podía acarrear quejas de los espectadores, multas regulatorias y daños a la reputación.

Diagnóstico

Las alertas solo ayudan si son completas y discretas. Las caídas de red perderían lecturas y los detectores inestables inundarían a los operadores de falsas alarmas.

Opciones que valoré

  1. Se cae el enlace con la nube. ¿Cómo se evita perder alguna lectura?

    Elegida

    Guardar las lecturas en el disco local y reenviarlas; la nube ignora los duplicados

    Una hora de lecturas y un día de eventos sobreviven a una caída, y una repetición nunca cuenta dos veces. Coste: más piezas móviles en el equipo local.

    • Descartada

      Guardar las lecturas en memoria y descartar las más antiguas al llenarse

      Pierde datos durante una caída, justo cuando más importan.

  2. Un detector se activa y se desactiva. ¿Cuándo salta una alerta?

    Elegida

    Solo cuando un fallo dura un tiempo mínimo, y después un periodo de espera

    Un único canal inestable no puede inundar a los operadores.

    • Descartada

      Alertar en cada cambio

      Un único canal inestable entierra a los operadores en falsas alarmas.

Solución

Un agente local mide cada canal y envía las lecturas a un servicio en la nube. Los operadores tienen una consola web con proyectos, umbrales y alertas.

Agente local
  • Python
  • EBU R128 loudness
  • ONNX Runtime
  • PyTorch
  • SpeechBrain
  • Windows build
API en la nube
  • FastAPI
  • SQLAlchemy
  • Alembic
  • PDF reports
Datos
  • TimescaleDB
  • PostgreSQL 17
Consola del operador
  • Next.js
  • React
  • TanStack Query
  • WebSockets
  • uPlot
  • Zustand
Calidad y entrega
  • Docker Compose
  • GitHub Actions
  • uv
  • Ruff
  • mypy
  • pytest
  • Playwright
  • axe

Cifras: Ajustes del búfer del agente