**Proyecto 1: Una aplicación práctica usando modelos** **Definición del problema:** Los idiomas siempre han supuesto un problema o una limitación para muchas personas y, aunque el inglés no sea un idioma complejo en exceso, comunicarse en el idioma universal puede convertirse en todo un reto: vergüenza, falta de tiempo para aprenderlo, dificultades intelectuales, falta de práctica… Para darle solución a esta problemática, nace Audio-translator, una interfaz que traduce al inglés tus palabras en español y te devuelve un audio para que puedas utilizarlo como necesites. **¿Cómo funciona?** Para empezar, necesitas cargar un audio que puedes grabar al momento o subirlo desde tu ordenador. Una vez lo procesas, puedes ver la transcripción de lo que decías en tu audio ya en inglés y puedes reproducir y descargar el audio generado para que puedas compartirlo. El input necesario para la aplicación es un archivo de audio en español, que puede ser de formato común como WAV o MP3. Esta aplicación proporciona dos tipos de output: texto traducido, resultado de la transcripción y traducción del audio, y el audio generado, un archivo de audio en inglés que reproduce el texto traducido. **¿Qué modelos se han utilizado?** Para la transcripción del audio a texto se ha utilizado el modelo ***Whisper-Small*** de OpenAI, modelo avanzado de reconocimiento automático del habla que convierte audio en texto. Se trata de un modelo ASR (Automatic Speech Recognition) y traducción. Sus posibles limitaciones son: • Dificultades con acentos fuertes o ruido ambiental. • Está optimizado para segmentos de audio de hasta 30 segundos. • En ocasiones puede generar texto adicional, afectando a la precisión de la transcripción. • Puede ser más lento en comparación con otros modelos de reconocimiento de voz. • Requiere infraestructura potente y puede implicar costos significativos si se utilizan servicios en la nube. Para la traducción del texto transcrito del español al inglés se ha utilizado el modelo ***Helsinki-NLP/opus-mt-es-en***, que forma parte de la colección de modelos desarrollados por Helsinki-NLP utilizando MarianMT y proporciona una alta precisión en la traducción. Es un sistema de traducción automática neuronal basado en la arquitectura Transformers. Sus limitaciones son • La calidad puede variar dependiendo del contexto y la complejidad del texto. • Puede tener dificultades con expresiones idiomáticas o culturalmente específicas. Para la síntesis de voz se ha utilizado el modelo ***Bark*** desarrollado por Suno AI para generar audio de alta calidad a partir de texto. Este modelo utiliza técnicas avanzadas de inteligencia artificial, específicamente redes neuronales, para producir voces naturales y expresivas. Sus posibles limitaciones son: • Puede requerir recursos computacionales significativos para generar audio de alta calidad, lo que podría ser un desafío en dispositivos con hardware limitado. • Aunque produce audio de buena calidad, la naturalidad y expresividad pueden variar dependiendo del texto de entrada y los ajustes del modelo. • La capacidad para ofrecer diferentes estilos o emociones en la voz generada puede ser limitada, lo que afecta la personalización y adaptabilidad a diferentes contextos comunicativos. Los modelos utilizados en esta aplicación ofrecen un rendimiento de alta calidad en transcripción, traducción y síntesis de voz, ya que utiliza tecnologías avanzadas que son apropiadas para cada etapa del proceso. A pesar de la idoneidad general, para garantizar un rendimiento óptimo es crucial tener en cuenta las limitaciones inherentes a los modelos utilizados como los requerimientos computacionales y la calidad de las variables. **Rendimiento** Para medir el rendimiento de la aplicación, se han utilizado 10 muestras de audio de 4, 6, 7, 7, 13, 17, 22, 25, 28 y 30 segundos para evaluar el tiempo de ejecución de cada etapa (transcripción, traducción y generación de audio), el uso de la CPU y el uso de la RAM. Los resultados han sido: 1. *Tiempo de Ejecución:* • Generación de Audio: ~574 segundos (9.5 minutos) • Transcripción: ~31.6 segundos • Traducción: ~10.9 segundos La generación de audio es, con mucho, el proceso más largo, tomando casi 18 veces más tiempo que la transcripción y 53 veces más que la traducción. Esto representa el cuello de botella más significativo en el sistema. 2. *Uso de CPU:* • Generación de Audio: Aumento promedio de ~25% • Transcripción: Aumento promedio de ~35% • Traducción: Aumento promedio de ~15% Sorprendentemente, la transcripción muestra el mayor aumento en el uso de CPU, seguida de cerca por la generación de audio. La traducción tiene el menor impacto en el CPU. 3. *Cambio en RAM:* • Generación de Audio: Aumento promedio de ~674 MB • Transcripción: Disminución promedio de ~611 MB • Traducción: Aumento promedio de ~215 MB La generación de audio consume significativamente más RAM, mientras que la transcripción tiende a liberar RAM. Esto sugiere que la transcripción podría estar utilizando algún tipo de optimización de memoria o liberación de recursos después de su uso. 4. *CPU después de la ejecución:* • Generación de Audio: ~43% • Transcripción: ~37% • Traducción: ~25% Todas las etapas terminan con un uso de CPU relativamente alto, lo que indica que el sistema está trabajando intensamente durante todo el proceso. | Etapa | Tiempo de Ejecución (s) | CPU Antes (%) | CPU Después (%) | Cambio en RAM (MB) | |-----------------------|-------------------------|---------------|-----------------|---------------------| | Generación de Audio | 567.39 | 20.27 | 43.12 | 674.62 | | Traducción | 10.88 | 6.15 | 24.66 | 215.06 | | Transcripción | 31.62 | 7.24 | 37.17 | -610.70 | **Conclusiones del análisis** • *Generación de Audio como Cuello de Botella* La generación de audio es la etapa más lenta, con un tiempo de ejecución promedio de 567.39 segundos. Este tiempo prolongado puede afectar la experiencia del usuario, especialmente si se requiere procesar múltiples archivos de audio o si se espera una respuesta rápida del sistema. Mas adelante se podría investigar y aplicar técnicas de optimización para esta etapa. Esto podría incluir: o Uso de modelos más ligeros que mantengan una calidad aceptable. o Implementación de aceleración por hardware (como GPU) para mejorar la velocidad de procesamiento. o Evaluación de alternativas a Bark que puedan ofrecer un rendimiento similar con menor carga computacional. • *Impacto en el Uso de CPU* La transcripción muestra un aumento considerable en el uso de CPU, alcanzando un promedio del 37.17% después del procesamiento, mientras que la generación de audio tiene un uso final del 43.12%. Un alto uso de CPU puede llevar a la saturación del sistema, especialmente si se ejecutan múltiples instancias del proceso simultáneamente. Esto puede resultar en un rendimiento general más lento y afectar otras aplicaciones que se están ejecutando. Para solucionar esto, se podría implementar procesamiento paralelo o por lotes para distribuir la carga entre múltiples núcleos del CPU. • *Gestión de Memoria* La generación de audio consume significativamente más memoria (un aumento promedio de 674.62 MB), mientras que la transcripción libera memoria (cambio promedio de -610.70 MB). Un aumento en el uso de RAM puede llevar a problemas si el sistema se queda sin memoria disponible, lo que podría resultar en una disminución del rendimiento o incluso en fallos. Como solución, implementar una gestión eficiente de memoria, asegurando que los recursos se liberen adecuadamente después de su uso. • *Eficiencia Relativa de las Etapas* La traducción es la etapa más eficiente en términos de tiempo y uso de recursos, con un tiempo promedio de solo 10.88 segundos y un aumento moderado en el uso de CPU y RAM. Esto sugiere que el modelo utilizado para la traducción está bien optimizado y no representa un problema significativo para el rendimiento general.