CommentImage / README.md
DGutierrez81's picture
Update README.md
8656fba verified

A newer version of the Gradio SDK is available: 5.28.0

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