Spaces:
Running
Running
Definición del probelma, input, output e interfaz | |
================================================== | |
* Definición del problema: la problemática planteada en el siguiente programa trata la dificultad de algunas personas para interactuar con el mundo técnológico que nos rodea, | |
si bien la tecnología avanza rápidamente para el usuario promedio, también existe un segmento del público con ciertas discapacidades a la hora de acceder a la tecnología disponible. | |
* Solución: Este programa trata una imágen o fotógrafía, interpréta la misma explicando los detalles más significantes y la explica en formato audio, conversionando primero de formato imágen a texto, y luego texto a audio. | |
* Input: archivo en formato .jpg o .jpeg cargado por el usuario. | |
* Output: archivo de audio en formato .wav con una transcripción del archivo anterior. | |
* Interfaz: presenta una caja para que el usuario arrastre la imagen o la seleccione desde su propio path, con un botón de color se realiza la conversión de la que se obtiene el audio en el siguiente cuadro. | |
Descripción de los modelos utilizados | |
====================================== | |
* Salesforce/blip-image-captioning-large: Este modelo toma una imagen como entrada y genera una descripción textual que resume su contenido. Se trata de una tarea conocida como image captioning, | |
combina procesamiento de lenguaje natural (NLP) con visión computacional. Preentrenado en grandes conjuntos de datos que contienen pares de imágenes y descripciones textuales, | |
la calidad de las descripciones depende de las imágenes de entrenamiento, y puede generar resultados vagos o inexactos para imágenes poco comunes. | |
* microsoft/speecht5_tts: Convierte texto en un archivo de audio, sintetizando voz natural. Este modelo pertenece a la familia de tareas conocidas como text-to-speech.Su arquitectura es modular, | |
lo que permite usarlo para múltiples tareas, incluyendo síntesis de voz (text-to-speech), reconocimiento de voz (speech-to-text), y conversión de habla a habla (speech-to-speech), utiliza embeddings (representaciones vectoriales) | |
que definen características del habla, como el timbre, el estilo o el idioma del hablante. | |
Descripcion del dataset utilizado | |
================================== | |
* Matthijs/cmu-arctic-xvectors: define el estilo y las características del hablante que SpeechT5 utiliza para generar la voz. En este caso, se selecciona un vector específico del conjunto de datos (índice 7306). | |
Flujo del programa | |
=================== | |
* Carga del modelo de imagen a texto: | |
Se inicializa un pipeline para el modelo BLIP desde Hugging Face (pipeline("image-to-text", model="Salesforce/blip-image-captioning-large")). | |
El texto generado se obtiene enviando la imagen a la API mediante una solicitud POST. | |
*Carga del modelo de texto a audio: | |
Se carga un pipeline para el modelo SpeechT5 desde Hugging Face (pipeline("text-to-speech", model="microsoft/speecht5_tts")). | |
Se selecciona un "speaker embedding" específico del dataset CMU Arctic para personalizar la voz sintetizada. | |
*Definición de funciones principales: | |
image_to_text(image_path): Envía una imagen a la API y devuelve el texto generado. | |
text_to_audio(text): Convierte texto en audio usando el modelo y guarda el resultado como un archivo WAV. | |
Se combina las dos funciones en un flujo unificado usando fn=lambda image: text_to_audio(image_to_text(image)). | |
Limitaciones | |
============ | |
Los modelos utilizados son grandes y pueden consumir muchos recursos computacionales, especialmente si se ejecutan en hardware limitado (como CPU). | |
La síntesis de voz y la generación de subtítulos para imágenes pueden ser lentas, lo que afecta la experiencia del usuario. | |
Podría generar descripciones genéricas para imágenes complejas o con contextos específicos. | |
No siempre detecta detalles precisos o elementos pequeños en la imagen. | |
La calidad del texto generado puede ser inconsistente, especialmente para imágenes fuera de los datos en los que el modelo fue entrenado. | |