|
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. |
|
|