Inspiration
Nerdearla ofrece transcripción simultánea en sus eventos, pero hoy depende de herramientas pagas y operación manual. Con más de 30 sesiones en inglés este año, ese esquema no escala. Quise construir una alternativa open source que sí escale, poniendo en práctica mis habilidades técnicas en un problema real e inclusivo.
What it does
Un sistema web donde cada "sala" corre una transcripción y traducción en tiempo real de forma independiente. El usuario elige un audio (local o de YouTube), le da play, y ve subtítulos en inglés arriba y español abajo. Con un clic se abre otra sala en paralelo, con su propio audio y estado, sin tocar código.
How we built it
Backend en Python (FastAPI + WebSockets) usando la API de audio de Gemini para
transcripción y traducción en tiempo real. Cada sala tiene su propio pipeline: FFmpeg
lee el audio y lo va entregando a Gemini en streaming. El frontend usa el currentTime
del reproductor como reloj maestro para controlar ese envío y mantener todo sincronizado.
Challenges we ran into
El más grande fue la sincronización: al principio el backend procesaba el audio a su propio ritmo, sin enterarse si el usuario pausaba o no, así que los subtítulos se adelantaban o seguían corriendo con el audio parado. Lo resolví haciendo que el frontend gobierne el ritmo de envío (play/pause/seek) y el backend reaccione a eso en tiempo real.
Accomplishments that we're proud of
Lograr que varias salas corran en paralelo de forma totalmente independiente, cada una con su propio audio y estado de reproducción, sin que una afecte a la otra.
What we learned
Que Gemini procesa audio mucho más rápido que el habla real, lo cual ayuda pero rompe todo si no se controla el ritmo de entrega.
What's next for nerdearla live captions
Integración con OBS/vMix para quemar subtítulos directo al stream, un glosario técnico para mejorar la traducción en charlas de tecnología, exportación a SRT/VTT, y un panel de monitoreo para equipos de producción de eventos.
Log in or sign up for Devpost to join the conversation.