Spaces:
Sleeping
Sleeping
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. | |