image-to-audio / description.ttxt
alvarochamorro3's picture
Update description.ttxt
ae0257a verified
raw
history blame
4.02 kB
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.