CommentImage / README.md
DGutierrez81's picture
Update README.md
8656fba verified
|
raw
history blame
6.68 kB
---
title: CommentImage
emoji: 🖼️
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 5.6.0
app_file: app.py
pinned: false
short_description: Comment on an image in writing and through audio.
---
# Descripción del Proyecto: **Cocktail Descriptions**
## **Problema:**
El objetivo es crear una interfaz interactiva para que los usuarios puedan elegir un cóctel de una lista, visualizar su nombre, imagen, instrucciones de preparación y escuchar las instrucciones y descripciones del cóctel de manera hablada. Para ello, se utilizarán APIs externas y modelos de inteligencia artificial para generar descripciones de imágenes y convertir texto en audio.
El desafío consiste en:
1. **Obtener información sobre cócteles** desde una API externa (TheCocktailDB).
2. **Generar una descripción** de la imagen del cóctel utilizando un modelo de procesamiento de imágenes.
3. **Convertir el texto de las instrucciones** del cóctel y la descripción de la imagen en audio utilizando un modelo de síntesis de voz.
4. **Presentar todo esto en una interfaz interactiva** con Gradio, que permita seleccionar un cóctel, ver su imagen, leer las instrucciones y escuchar tanto las instrucciones como la descripción de la imagen.
## **Solución Propuesta:**
### **Input:**
1. **Selección de Cóctel:** El usuario puede elegir un cóctel de una lista cargada desde la API TheCocktailDB.
2. **Modelo de Descripción de Imagen:** El modelo BLIP (Bootstrapping Language-Image Pretraining) se usará para generar una descripción textual de la imagen del cóctel seleccionada.
3. **Modelo de Síntesis de Voz:** El modelo SpeechT5 se usará para convertir tanto las instrucciones del cóctel como la descripción de la imagen en audio, con voz personalizada mediante embeddings de hablante (Speaker Embedding).
### **Output Esperado:**
1. **Nombre del Cóctel:** El nombre del cóctel seleccionado.
2. **Imagen del Cóctel:** Una imagen del cóctel obtenida de la API.
3. **Instrucciones del Cóctel:** Un texto con las instrucciones para preparar el cóctel.
4. **Audio con Instrucciones:** Un archivo de audio con las instrucciones habladas.
5. **Descripción de la Imagen:** Un texto con la descripción de la imagen generada por el modelo BLIP.
6. **Audio de la Descripción de la Imagen:** Un archivo de audio con la descripción hablada de la imagen.
### **Tecnologías Utilizadas:**
1. **Gradio:** Para la creación de la interfaz interactiva en la que los usuarios puedan elegir cócteles y ver las descripciones e imágenes.
2. **Transformers de Hugging Face:**
- **BLIP (Image-to-Text)** para la descripción de imágenes.
- **SpeechT5 (Text-to-Speech)** para la conversión de texto a audio.
3. **API TheCocktailDB:** Para obtener información sobre los cócteles (nombres, imágenes, instrucciones).
4. **Torch y Datasets de Hugging Face:** Para cargar los embeddings de voz y personalizar la voz utilizada para la síntesis.
### **Modelos Utilizados:**
1. **BLIP (Bootstrapping Language-Image Pretraining):**
- **Clasificación:** Generación de texto a partir de una imagen.
- **Descripción:** BLIP es un modelo de preentrenamiento en imágenes y lenguaje, ideal para tareas de descripción de imágenes.
- **Limitaciones:**
- Aunque es eficaz en describir imágenes, puede generar descripciones genéricas o incorrectas si la imagen no contiene suficiente contexto relevante para el modelo.
- No tiene conocimiento específico sobre cócteles o bebidas, por lo que las descripciones pueden no ser siempre precisas.
2. **SpeechT5 (Text-to-Speech):**
- **Clasificación:** Síntesis de voz a partir de texto.
- **Descripción:** SpeechT5 es un modelo de transformación de texto a voz, utilizando una arquitectura basada en transformadores. En este proyecto, se utiliza para generar audios personalizados con las instrucciones del cóctel y la descripción de la imagen.
- **Limitaciones:**
- La calidad de la voz puede depender de los embeddings del hablante, y en ciertos casos puede no sonar completamente natural.
- Aunque soporta varios idiomas, la pronunciación puede ser imperfecta en idiomas no entrenados explícitamente.
3. **Embeddings de Voz (Speaker Embeddings):**
- **Clasificación:** Adaptación de la voz en la síntesis de texto a voz.
- **Descripción:** Los embeddings de voz permiten personalizar la voz generada por el modelo SpeechT5, adaptándola a una voz específica (en este caso, un hablante masculino de un dataset predefinido).
- **Limitaciones:**
- Puede haber limitaciones en la personalización de la voz, ya que solo se utilizan los embeddings disponibles en el dataset (CMU Arctic).
## **Flujo del Proyecto:**
1. **Selección del Cóctel:** El usuario selecciona un cóctel de la lista cargada desde la API (por ejemplo, "Margarita").
2. **Obtención de Información:** El sistema obtiene información detallada sobre el cóctel: nombre, instrucciones y la imagen del cóctel.
3. **Generación de Descripción de la Imagen:** Utilizando el modelo BLIP, se genera una descripción de la imagen del cóctel.
4. **Síntesis de Voz para Instrucciones:** El texto de las instrucciones se convierte en audio utilizando el modelo SpeechT5.
5. **Síntesis de Voz para la Descripción de la Imagen:** La descripción de la imagen también se convierte en audio utilizando SpeechT5.
6. **Presentación en la Interfaz:** Los resultados (nombre, imagen, instrucciones, descripciones y audios) se muestran en la interfaz de usuario de Gradio.
## **Posibles Limitaciones:**
1. **Conexión a la API de TheCocktailDB:** Si hay problemas de conectividad o si la API no devuelve datos válidos, el sistema puede fallar al cargar la lista de cócteles.
2. **Precisión en la Descripción de la Imagen:** El modelo BLIP puede no generar descripciones precisas de las imágenes, especialmente si los cócteles tienen decoraciones complejas o inusuales.
3. **Limitaciones de los Modelos TTS:** Los audios generados pueden no ser completamente naturales o adecuados para todos los usuarios debido a las limitaciones del modelo SpeechT5 y los embeddings de voz disponibles.
---
## **Conclusión:**
Este proyecto crea una experiencia interactiva donde los usuarios pueden elegir un cóctel, visualizar su imagen y obtener tanto las instrucciones habladas como la descripción de la imagen. La solución combina procesamiento de imágenes, generación de texto y síntesis de voz para ofrecer una experiencia única. Sin embargo, existen algunas limitaciones inherentes a los modelos y la conectividad a la API externa que pueden afectar la precisión o el rendimiento del sistema.