English

Open-source live captions for multi-room conferences (Apache 2.0). Each room's audio goes to Gemini Live. Captions appear in the original language and are translated EN↔ES. Every attendee scans the room's QR, picks a language and reads on their phone.

  • One worker per room (file, stream or mic) and one hub, plus a web view per room and language, a projection mode, an OBS/vMix overlay and an operator panel (status, p50/p95 latency, reconnections).
  • Measured: 2 real rooms for ~11 min each, with full coverage and captions ~3 s after the first word. On 09/25, 5 real rooms ran at once. Live translation reached 71–100 % with a 2.6–12 s median lag, depending on the run.
  • Self-healing: when the Gemini Live connection drops or stalls, the worker reopens it with overlap, so nobody has to restart anything.
  • Try it without an API key: docker compose -f ops/docker-compose.yml up (replay mode, clearly labeled).
  • Built solo by Ricardo during the 24 h, directing AI coding agents (PROMPTS.md).

Español

Subtítulos en vivo open source para conferencias con varias salas (Apache 2.0). El audio de cada sala va a Gemini Live. El texto aparece en el idioma original y se traduce EN↔ES. Cada persona escanea el QR de su sala, elige el idioma y lee en su celular.

  • Un worker por sala (archivo, stream o micrófono) y un hub, más una vista por sala e idioma, modo proyección, overlay para OBS/vMix y panel de operación (estado, latencia p50/p95, reconexiones).
  • Medido: 2 salas reales de ~11 min cada una, con cobertura completa y subtítulos ~3 s después de la primera palabra. El 25/09 corrieron 5 salas reales a la vez. La traducción en vivo llegó al 71–100 %, con un atraso mediano de 2,6–12 s según la corrida.
  • Se repara solo: si la conexión con Gemini Live se corta o se traba, el worker la reabre con solape y nadie tiene que reiniciar nada.
  • Probalo sin API key: docker compose -f ops/docker-compose.yml up (modo replay, rotulado).
  • Hecho por Ricardo en solitario durante las 24 h, dirigiendo agentes de IA (PROMPTS.md).

Repo + README (full docs / documentación completa): https://github.com/RicardoNigrelli/subtitulos-en-vivo

Built With

Share this project:

Updates

Submission history