Intelligent Helper Repository (Ayudante Inteligente de Respositorio) es mi intento por mostrar como la inteligencia artificial puede ayudar en el acceso a la educación.
Este es el proyecto que creé para mi tarea de final de Bootcamp en el curso de Análisis de Datos en IronHack. La idea era intentar mejorar la experiencia del Bootcamp, adquiriendo más estudiantes y ayudando a los existentes. Así que decidí transcribir todos los videos de mi bootcamp, traduciendo todos los textos (a español por lo menos pero alguno también a portugués, italiano, alemán, chino e hindi, como los idiomas que mi fantásticos compañeros y profesores podían hablar), subtitulando, creando resúmenes del contenido y palabras clave, todo automatizado (en este momento, no pude terminar todos los automatismos pero existen todas las funciones para ello).
El proyecto también incluye una aplicación para buscar y encontrar videos que hablen sobre un tema (o cualquier palabra que se quiera buscar en cualquiera de los idiomas en que están traducidos los videos) y cuando se encuentra el video que se desea explorar, da la opción de hacer una búsqueda dentro del video y localizar el momento exacto donde se habla sobre lo que se está buscando (implementé los índices FULL TEXT en MySQL con la opción de Lenguaje Natural).
Para reproducir los videos con subtitulos y localizar la posición exacta he usado VLC media player.
Me gustaría poder entrenar mis propios modelos pero el hardware de mi pc y el tiempo me hicieron desistir, sin embargo el proyecto no está cerrado y quizás en un futuro puedo volver a él para mejorarlo.
Proceso
- Transcripción
Para esta tarea decidí usar Whisper. Después de probar diferentes opciones, esta fue la que se ajustaba mejor a mi proyecto. Usé el modelo "base.en" debido a mi calendario (tengo un trabajo a tiempo completo, con lo que el proyecto tenía que desarrollarlo después de mi trabajo) y los requerimientos de hardwaree requirements pero se puede usar otro modelo más pesado para obtener mejor resultado, o incluso multi-idioma. - Subtítulos
Tuve muchos problemas para gestionar los subtítulos, Intenté partir los videos pero el sincronizarlos de nuevo se volvió imposible con el tiempo que tenía para hacerlo, así que al final decidí usar Stable Whisper sin partir los videos. - Resumir
Para esta tarea decidí usar Hugging Face transformers después de probar otras opciones, también probé varios modelos distintos y al final decidí usar mrm8488/flan-t5-large-finetuned-openai-summarize_from_feedback el cual me dio los mejores resultados. - Palabras clave
KeyBERT fue la opción escogida entre varias alternativas y el modelo que usé fue universal-sentence-encoder - Traducción
Esta fue la única parte en la que no probé alternativas porque lo había utilizado anteriormente en mi proyecto Lyrics y funcionó perfectamente para mi aunque no fue un camino de rosas, cuidado al traducir subtítulos ya que te pueden dar algunas sorpresas (saltos de líneas...) así que decidí partir los subtítulos en líneas, traducirlas y unirlas luego todas juntas al final. - Base de datos
En este proceso guardé en una base de datos MySQL todos los textos que tenía (originales y traducciones) con su relación con los videos. Creé un índice FULL TEXT en la base de datos por lo que pude usar la opción de búsqueda con lenguaje natural para buscar los videos. - Aplicación
Ya que usé Flask en mi proyecto Lyrics, para este proyecto quería intentar alguna otra opción y después de investigar sobre Streamlit y Django, decidí tomar el camino más complicado, así que usé Django (con Bootstrap 5).https://huggingface.co/mrm8488/flan-t5-large-finetuned-openai-summarize_from_feedback
Como dije anteriormente, el límite de tiempo no me permitó terminar todo lo que tenía en mi cabeza (lanzar la lógica desde Django, actualizar videos, opción de transcribir videos online -de momento solo pude usar ficheros en local-). Pero pienso que en este proyecto hay un montón de información sobre esta complicada travesía que escogí.
Con este proyecto, mis compañeros del bootcamp me dieron la oportunidad de participar en el Hackshow Remoto de Ironhack en Marzo de 2023.
Para resumir los enlaces de mi proyecto, aquí están:
- Código fuente (incluida la aplicación de Django): Mi Github
- Video de presentación: Mi Youtube
- Video en el Hackshow: Mi Youtube