Minutas Pro con IA

Introducción
Suele ser habitual, ahora que está de moda el trabajo remoto, que las reuniones empresariales se realicen a través de alguna plataforma diseñada para tal menester (Teams, Zoom, etc). En este sentido y, con el auge que está teniendo la Inteligencia Artificial, algunos moderadores de reuniones o conferencias, han buscado la manera de generar sus minutas de forma automática, utilizando ciertos plugins que usan IA para crear los correspondientes reportes. Sin embargo, esto acarrea un problema: la posible violación de las políticas de seguridad que, en mayor o menor medida, todas las empresas poseen. Esto es así, entre otras cosas, debido a que en dichas reuniones, tienen que añadir a su bot o plugin, como un participante más en las mismas. Para crear las minutas o resúmenes, el bot extrae la información y la procesa "fuera" del ámbito de dicha empresa. Y ahí es donde está el problema. La cuestión aquí es ¿qué pasaría si el proceso de automatizar la creación de minutas se realiza localmente, sin necesidad de incluir un plugin en las reuniones? La respuesta es simple: Minutas Pro, mi desarrollo para generar resúmenes de las reuniones de forma rápida y eficaz, con el consiguiente ahorro de tiempo. Veamos en qué consiste.
Funcionamiento general
Como se puede apreciar en la imagen de la derecha, la interfaz es muy intuitiva. Los campos que incluye, son imperativos para poder generar la minuta correspondiente y dispone de dos modalidades: Manual y automática. El modo manual habilita a la app para que el moderador vaya capturando texto en base a su propio criterio. Es decir, a medida que se va desarrollando la reunión, el moderador puede ir anotando los comentarios que cree relevantes, los acuerdos y, finalmente, las conclusiones. Con posterioridad, puede guardar la información, que queda alojada en una pequeña base de datos SQLite y exportar la minuta a un documento de Word, el cual se crea de forma automática. Cabe destacar que un proyecto, puede alojar diferentes minutas. Es decir, supongamos que tenemos un proyecto que se llama "SuSE Linux para SAP", en el cual vamos a decidir si lo mejor es implementar SuSE for SAP o SLES, por ejemplo. En dicha reunión participan 10 personas y el proyecto va a tener una duración estimada de 6 meses. Durante esos 6 meses, tendremos una reunión por semana. Bien, pues una vez que damos de alta el proyecto en la aplicación, todas las minutas que generemos asociadas a dicho proyecto, se guaradarán en la base de datos, de forma que, si necesitamos revisar alguna, la podamos cargar con posterioridad. Vale, entonces, ¿qué hace el modo automático? Pues la pregunta se responde sola. Al seleccionar esta modalidad, el moderador solamente tendrá que dar de alta el proyecto, capturar los nombres de los participantes y escribir la temática de la reunión. Los comentarios, los acuerdos y las reuniones, se crearán de forma automática al finalizar dicha reunión. ¿Cómo se crea? Utilizando IA. Te explico a continuación el funcionamiento de esta modalidad.
Modo automático (con Inteligencia Artificial)
No lo he dicho antes, pero este proyecto lo estoy desarrollando en python y Qt5. La base del desarrollo en mi Mac con Sequoia o, lo que es lo mismo, MacOS 15.0.1 corriendo en un M3 de Apple. Por lo tanto, portar este desarrollo a Windows y Linux necesita de algunas modificaciones en el código.
Bien, retomando el hilo, el modo automático de esta app lleva implícito un gran ahorro de tiempo en la creación de minutas. Utiliza la app GPT-4, que tiene un excelente desempeño con el idioma castellano. El problema es que, para poder utilizarlo, el usario final, necesita tener una cuenta válida y saldo activo para el uso de la API. Este es el motivo de que, de momento, no pueda compartir la app públicamente, ya que mi API-KEY es personal e intransferible, amén de encontrarse inmersa en el código (en un módulo aparte). En un futuro, crearé un botón de configuración para solventar este asunto, donde además, implementaré otras características para hacer la app más amigable al usuario. Pero bueno, así es el funcionamiento automático: la app transcribe la reunión a un archivo de audio y la API de GPT-4 extrae el contenido, lo resume, lo transcribe y se lo muestra al Moderador, que siempre tendrá la última palabra. Después, el proceso es igual que en el modo manual (el Moderador guarda la minuta, la exporta a word o, simplemente la elimina. Como se puede ver en la imagen, al seleccionar el modo automático, se habilita otro botón con la leyenda "Iniciar grabación". Al hacer clic en dicho botón, comienza el proceso. Si el Moderador pulsa "Detener grabación", comienza el trabajo de la API de GTP-4 y solamente tendremos que esperar unos segundos a que aparezca el contenido en los campos "Comentarios relevantes", "Acuerdos" y "Conclusiones". That's All.
Funcionalidades
Una vez generada la minuta, podemos guardarla, por si la necesitamos en un futuro, en una base de datos, que se crea de forma automática (SQLite ya viene incorporado en MacOS). También podemos exportarla en formato de Word (.docx), como ya he comentado con anterioridad. Esto se hace dando clic en el botón "Exportar a Word" y el resultado se muestra como se puede apreciar en la imagen de la derecha. El moderador, decidirá si adjunta el archivo en el correo electrónico para compartirlo con los asistentes, o prefiere hacer un copy/paste y poner el texto en el cuerpo del mensaje. De momento, no tengo como prioridad exportar en html, pero tampoco lo descarto para el futuro.
Otra de las funcionalidades que tiene este programa, es la posibilidad de ver en un calendario, los días en los que se generó alguna minuta. En principio, esto puede parecer poco útil, tomando en cuenta que se pueden buscar las minutas con el botón "Importar", pero la opción ahí está y le correspondería a cada usuario, decidir en base a sus propios criterios, cómo utilizar la aplicación.
No nos engañemos, el programita todavía está un poco "verde", por no decir bastante, pero de momento, en lo personal, me sirve en un sentido práctico. Es solamente cuestión de tiempo el hecho de que lo vaya mejorando, tanto a nivel de código, como de aspecto. En el momento de escribir este texto, incluso tengo esta pequeña app, tal cual se muestra, en un archivo .dmg que se instala y funciona sin mayores problemas en mi MacOS. Y así comienzan las cosas, poco a poco, sin prisa y sin pausa, hasta que uno mismo se sorprende al final. Esperemos continuar este desarrollo en el tiempo y sin problemas.
El botón SQLite, despliega un menú donde se pueden observar los proyectos guardados y la cantidad de minutas asociadas a cada proyecto. Así mismo, incorpora un botón "Eliminar" para ir dando de baja los proyectos que ya concluyeron, siempre y cuando el usuario así lo estime oportuno.
"Nueva Minuta" es otro botoncito que lo que hace es limpiar todos los campos y dejar listo el programa para comenzar una nueva sesión. Obviamente, antes de hacer esto, debemos asegurar que ya tenemos guardada la minuta anterior en la base de datos y/o exportada debidamente a word. De lo contrario, la perderíamos, como es lógico.
La aplicación cuenta con una "Ayuda" muy escueta, pero útil. Digamos que es una ayuda que va "al grano" y que explica muy claramente cómo utilizar el programa. Básicamente, nos indica lo mismo que estoy escribiendo yo en este artículo, pero sin tanto rollo. El tiempo es invaluable y es por eso que me gusta incorporar ayudas escuetas y funcionales. Se puede ver un ejemplo en la captura de la derecha.
El botón "Probar Audio" hace una comprobación sobre las herramientas de audio que se utilizan para el asunto de grabar el audio de las reuniones. En MacOS he optado por utilizar BlackHole 2ch. Entonces, el programa valida que BlackHole esté debidamente instalado y configurado a nivel sistema operativo y nos lo indica.
Lo que falta por hacer
El siguiente paso en la evolución de Minutas Pro es mejorar el código actual. También pretendo implementar un pequeño botón que despliegue un formulario de configuración. Por supuesto, la interfaz principal puede ser más atractiva visualmente. Para el manejo de la base de datos, necesito añadir una opción para editar los proyectos. Actualmente, el audio que se genera en la modalidad automática, está en formato .m4a. Mi idea es que se creen audios de menos de 25 MB y, si por alguna razón se supera esta cantidad, utilizar un sistema de compresión adicional, ya que GPT-4 tiene esta limitante. Otra de las cosas que quisiera hacer a futuro es trabajar en otra metodología para la grabación del audio, sin tener que depender de BlackHole. No es que me desagrade, pero en la práctica, resulta un poco engorroso tener que realizar ajustes de sistema, por el simple hecho de querer instalar Minutas Pro. El soporte para idiomas es otra de las cosas que me resulta atractiva. Quizá proporcionar la funcionalidad de un "modo oscuro" también resulte interesante. En fin, faltan muchas cosas y hay poco tiempo. Sin embargo, me siento contento por haber realizado este proyecto.
La mayoría de usuarios de mi entorno, utilizan alguna versión de Windows para sus tareas personales y laborales. A algunos de ellos les ha interesado este pequeño proyecto, así que, me he dado a la tarea de portar el código para que pueda funcionar sin problemas en el sistema operativo de Microsoft. Las modificaciones han sido mínimas, pero importantes. Me encontré con algunos problemas al trabajar con la base de datos, por ejemplo, así como con la carga del banner en el Form principal. Al final, compilé todo el asunto y el resultado fue empaquetado en un instalador tradicional. Hay, no obstante, pequeñísimas diferencias con respecto a la versión original para MacOS, que detallo a continuación:
Diferencias
Lo más importante aquí es considerar que en la versión para Windows, el programa no hace uso de BlackHole. Por lo tanto, no es necesario este paso previo que en la versión para Mac resulta imperativo. El software utiliza los recursos de audio del sistema directamente, generando un archivo en formato .mp3 en lugar de m4a. Esto permite mantener los archivos de audio que serán procesados por la IA, en un formato lo suficientemente pequeño y robusto. En este sentido, el botón "Probar Audio" de la interfaz principal, indicará si todo está correcto o no, pero en el Menú Herramientas, la opción de "Probar Audio" nos mostrará directamente todos los dispositivos que nuestra computadora posee. Esto resulta útil en el supuesto de que detectemos algún problema referente a este rubro.
Otra de las diferencias es la ayuda que se incluye en el software. Al presionar en el botón correspondiente, se mostrará el texto readaptado a Windows. Por lo demás, las funcionalidades son exactamente las mismas que para MacOS. Cabe mencionar, y no lo he comentado antes, que el programa es completamente gratuito. Dependerá del usuario final si decide o no crear su propia API-Key en la web de GPT y explotar a fondo las posibilidades que éste ofrece. En referencia a esto, mi consejo es que sí lo haga, ya que el ahorro de tiempo para generar minutas es considerable en relación a la metodología tradicional de tomar apuntes, revisar, discriminar y generar el informe final.
En cualquier caso, si usted está utilizando mi programa y le resulta útil y/o detecta alguna falla que desee reportar, le agradecería que me contactase a través del formulario de esta misma web. Esto me motiva y me ayuda a ir mejorando poco a poco el software.

La versión de Windows

La versión para Linux

La versión de Minutas Pro para Linux, en realidad es una versión para Debian. La diferencia principal con respecto a las versiones para MacOS y Windows, es que el código se compiló con python 3.11 en lugar de python 3.12. Lo que hay que tomar en cuenta es que, mientras trabajaba en esta portabilidad a Debian, me di cuenta de que los archivos de audio resultantes, eran demasiado grandes. Es decir, la aplicación funciona bien, siempre y cuando los archivos de audio que se generan durante el proceso de ejecución, no sobrepasen los 25 MB. En una reunión de 1 hora, obtuve archivos de 60 MB, lo que provocaba mal funcionamiento durante el procesado y análisis del audio para generar la minuta. De momento, esto lo he resuelto utilizando FFMPEG y modificando el código para que el audio se procese a 16000 Mhz en lugar de 44100 Mhz, amén de eliminar en el proceso, los espacios en blanco. Esto permite crear archivos finales mucho más pequeños. Hay que tomar en cuenta que, la limitante de los 25 MB no es una cuestión que dependa del desarrollo, sino de la API de GPT-4 que tiene esa limitante.
No tengo planes, de momento, de generar versiones para los diferentes "sabores" de Linux. El .deb resultante de esta portabilidad, supongo que funcionará bien en Ubuntu, Linux Mint, ZorinOS, Deepin y demás sistemas derivados de Debian. Digo que lo "supongo" porque no lo he verificado y no tengo intenciones de hacerlo. Para las distribuciones con formato .rpm como Fedora, OpenSuSE, etc, tampoco tengo planes. En cualquier caso, si decido cambiar Debian por alguna distro diferente (cosa que suelo hacer de vez en cuando), probablemente aproveche para generar el correspondiente binario. Eso sí, sin compromisos y sin tiempos establecidos. Tome en cuenta el lector, que estos desarrollos que realizo, los hago exclusivamente en mi tiempo libre, que no es mucho, dicho sea de paso.