Qué construí

Construí Nerditulos para seguir con subtítulos las charlas de un evento con varias salas. La demo tiene dos salas, cada una con su audio, su sesión y su texto separados.

El administrador prepara la charla, indica si se habla en español o inglés y elige un micrófono o un archivo WAV. Los asistentes eligen una sala y leen la transcripción original o la traducción al otro idioma desde el navegador, sin registrarse.

Agregué una prueba para comprobar el nivel de audio y la transcripción en la consola antes de iniciar la charla, sin publicar ese texto a los asistentes ni guardarlo como sesión. La interfaz puede usarse en español o inglés.

Por qué lo hice

Me sumé al desafío de Nerdearla para aprender tecnologías que conocía poco y ver qué podía construir con una dedicación estimada de menos de 16 horas. Esa estimación corresponde a la construcción inicial; después seguí trabajando en los controles de audio, los idiomas de la interfaz y las pruebas. Quise llegar a una aplicación que pudiera desplegar y probar con audio real.

Cómo lo resolví

Soniox realiza la transcripción y la traducción. Mi aporte fue construir el recorrido desde la captura de audio hasta el lector de cada sala. Separé los resultados por sala, sesión e idioma, actualicé el texto provisional y guardé los resultados finales antes de publicarlos. También implementé la recuperación del texto al recargar el lector y la espera de resultados pendientes al finalizar el audio.

Para elegir el proveedor, probé Gemini y Soniox con los mismos dos fragmentos de 30 segundos, uno en español y otro en inglés, y comparé la traducción del inglés al español. Elegí Soniox por lo observado en esos ensayos y porque integra transcripción y traducción.

El código es público y tiene licencia MIT. El repositorio incluye instrucciones de instalación con Docker Compose y Railway, y explica cómo configurar más salas. La demo usa Docker y acceso HTTPS mediante Cloudflare Tunnel. La capacidad por encima de las dos salas todavía no está medida.

Qué aprendí

Para mostrar texto en vivo, tuve que distinguir el texto provisional, que puede cambiar, de los resultados que el proveedor marca como finales. Agregar cada versión provisional como una frase nueva produce repeticiones.

La traducción puede llegar después de la transcripción. Trabajé en procesarlas por separado, mantener los resultados en orden y esperar los pendientes al finalizar el audio. También separé la prueba de fuente de una sesión real, para poder comprobar qué llega al reconocimiento sin cambiar lo que está leyendo el público.

Qué probé y qué falta

Probé la transcripción y la traducción con micrófono y archivos de audio. En una prueba breve con dos salas simultáneas, cada una mantuvo su propio contenido. También comprobé la recuperación del texto al recargar un lector. Esa prueba fue anterior a la habilitación del modo demo sin login.

Esa ejecución registró una discontinuidad de medio segundo en cada muestra y errores de reconocimiento que también afectaron la traducción. La prueba de fuente se verificó además con un WAV en español desde Chrome: mostró texto en la consola y, al iniciar la sesión, el lector recibió la traducción al inglés. Falta repetir ese recorrido con micrófono en modo demo y con dos navegadores operando a la vez. Las pruebas automatizadas de orden, aislamiento y autorización usan proveedor y almacenamiento simulados.

Quedan las pruebas prolongadas y la evaluación de precisión de la transcripción y la traducción, incluidos los términos técnicos. También falta medir el tiempo desde el habla hasta la pantalla para cada una. También falta completar la validación de accesibilidad y móviles. La aplicación usa una sola instancia del servidor; todavía no medí el costo por sala y hora ni su capacidad con muchas salas.

Cómo probar la demo

Elegí una sala y un idioma. El selector ES/EN cambia el idioma de la interfaz. En el lector también determina qué texto ves: si elegís el idioma de la charla, aparece la transcripción original; si elegís el otro, aparece la traducción. Para ver texto nuevo, el administrador debe iniciar una sesión y enviar audio. Si la sesión terminó, puede seguir visible su último texto.

Para probar la administración, abrí https://nerditulos.toolfor.ai/admin. La demo permite administrar sin login. En una sala disponible, ingresá un título, elegí el idioma hablado y prepará la sesión. Seleccioná el micrófono o un WAV con voz en ese idioma. Podés probar la fuente antes de transmitir; esa prueba muestra texto solo en la consola. Pulsá "Iniciar" en la sesión preparada y hablá si usás micrófono. Abrí el lector desde el enlace de la sala para ver la transcripción original o la traducción al otro idioma.

Mantené visible la pestaña al abrir un WAV; al pasar de la prueba a la sesión, el archivo continúa desde su posición.

Fuera del modo demo, Clerk identifica al usuario y el servidor autoriza únicamente a la cuenta administradora configurada.

Built With

Share this project:

Updates

Submission history