Inspiration

La idea de OmniStage AI nació para competir en el Vibeathon de Nerdearla, con un propósito personal muy fuerte: demostrarme hasta dónde soy capaz de llegar programando con la ayuda de la Inteligencia Artificial. La realidad es que no tengo un background tradicional de programación, pero quise asumir el desafío de construir una plataforma de traducción y subtitulación simultánea en tiempo real. Al arrancar mi meta era un sistema 100% offline, pero en el camino me topé con la latencia y limitaciones que me obligaron a cambiar / aprender sobre la marcha y rediseñar la estrategia hacia una modelo híbrido.

What it does

OmniStage AI es una plataforma multitenant de transcripción y traducción simultánea en tiempo real que programé para el hackathon. Permite transmitir audio desde el navegador (/broadcaster) asignado a un identificador de escenario único (stage_id). El backend en FastAPI procesa el audio aplicando un filtro de ruido inteligente (RMS + lookback circular de 280 ms para no recortar la primera sílaba). Implementa una arquitectura híbrida: un Modo Nube (Gemini) ultra veloz potenciado por Google AI Studio y Gemini Pro, y un Modo Local (BETA) de respaldo con faster-whisper y modelos de traducción neuronal (Helsinki-NLP). La audiencia se conecta mediante WebSockets (/audience) para recibir las líneas sincronizadas de texto original y traducido, con una interfaz lista para integrarse como overlay en OBS Studio.

How i built it

Backend: Lo estructuré íntegramente en Python con FastAPI y WebSockets asíncronos para gestionar salas en paralelo de manera aislada (multitenant in-process). Procesamiento de Audio: Integré FFmpeg para decodificar micro-fragmentos WebM/Opus del navegador, combinándolos con un VAD (Voice Activity Detection) propio basado en umbrales RMS y acumulación de búferes. Inteligencia Híbrida: Utilicé el SDK oficial de Google GenAI (Gemini) para el modo nube y faster-whisper con MarianMT (opus-mt-es-en / en-es) optimizados en CPU para el funcionamiento local. Frontend y OBS: Diseñé interfaces limpias con HTML5, CSS moderno (tipografía IBM Plex) y WebSockets nativos, pensadas tanto para la consola de control como para overlays de alta legibilidad en transmisiones.

Challenges i ran into

Aprender y programar a contrarreloj: Al no ser programador, cada obstáculo técnico (como la asinc de WebSockets o la gestión de buffers de audio) exigió un esfuerzo de aprender y depurar en poco tiempo apoyándome paso a paso en Google AIStudio (plan pro), Cursor (plan gratis) y Google Gemini(plan pro). Superar la latencia y los baches: El enfoque puramente offline inicial tenia demoras en crudo. Tuve que replantear la arquitectura sobre la marcha hacia un modelo híbrido que integre Gemini Pro para ganar velocidad y fluidez. Control de bucles y alucinaciones en Whisper: Al procesar fragmentos cortos, el modelo arrastraba contexto previo. Lo solucioné desactivando el histórico (condition_on_previous_text=False) y fijando la temperatura en cero.

Accomplishments that i'm proud of

Superar mis propios límites: Haber podido bajar a tierra una aplicación funcional de este nivel técnico estando solo y sin saber programar, demostrando el poder de la colaboración y la lluvia de ideas con Cursor y Google AI Studio / Gemini Pro. Lograr una integración impecable con OBS Studio a través de una URL limpia, ofreciendo subtítulos con sombra de alto contraste y una cola FIFO que evita saltos bruscos en pantalla. Conseguir una separación multitenant sólida donde múltiples salas (nerdearla-main, etc.) conviven de manera aislada y eficiente en el mismo nodo.

What i learned

Aprendí muchísimo sobre el manejo de flujos de audio en tiempo real mediante WebSockets, la gestión de bucles de asinc en Python con FastAPI y el ajuste fino de modelos de transcripción livianos (faster-whisper). Por sobre todo, aprendí que con perseverancia, dedicación y las herramientas de IA adecuadas, las barreras técnicas tradicionales se pueden derribar por completo.

What's next for OmniStage_AI

Añadir soporte para nuevos idiomas en los traductores locales de Helsinki-NLP y Gemini. Incorporar la opción de guardar actas y transcripciones automáticas al finalizar cada sesión de streaming. Optimizar la aceleración por GPU (CUDA) de forma nativa para escenarios que requieran alta concurrencia de salas simultáneas.

Built With

Share this project:

Updates

Submission history