Resumen de video utilizando OpenAI Whisper y Hugging Chat API
Resumen de video con OpenAI Whisper y Hugging Chat API
Introducción
“Menos es más”, como dijo el arquitecto Ludwig Mies van der Rohe, y esto es lo que significa la sumarización. La sumarización es una herramienta crítica para reducir el contenido textual voluminoso en fragmentos concisos y relevantes, que se adapten al consumo de información rápido de hoy en día. En las aplicaciones de texto, la sumarización ayuda a la recuperación de información y respalda la toma de decisiones. La integración de la IA generativa, como los modelos basados en OpenAI GPT-3, ha revolucionado este proceso al no solo extraer elementos clave del texto y generar resúmenes coherentes que conserven la esencia de la fuente. Curiosamente, las capacidades de la IA generativa se extienden más allá del texto a la sumarización de videos. Esto implica extraer escenas cruciales, diálogos y conceptos de videos, creando representaciones abreviadas del contenido. Puedes lograr la sumarización de videos de muchas formas diferentes, incluyendo la generación de un video de resumen corto, el análisis del contenido del video y resaltar secciones clave del video o crear un resumen textual del video utilizando la transcripción de video.
La API de Open AI Whisper aprovecha la tecnología de reconocimiento automático del habla para convertir el lenguaje hablado en texto escrito, aumentando así la precisión y eficiencia de la sumarización de texto. Por otro lado, la API de Hugging Face Chat proporciona modelos de lenguaje de vanguardia como GPT-3.
Objetivos de Aprendizaje
En este artículo aprenderemos sobre:
- Aprenderemos sobre técnicas de sumarización de videos
- Comprender las aplicaciones de la sumarización de videos
- Explorar la arquitectura del modelo Open AI Whisper
- Aprender a implementar la sumarización textual de videos utilizando las APIs de Open AI Whisper y Hugging Chat
Este artículo fue publicado como parte del Data Science Blogathon.
Técnicas de Sumarización de Videos
Análisis de Videos
Implica el proceso de extraer información significativa de un video. Usa el aprendizaje profundo para rastrear e identificar objetos y acciones en un video, y detectar las escenas. Algunas de las técnicas populares para la sumarización de videos son:
- La inteligencia artificial es solo un mal estudiante.
- Construyendo microservicios para backends de multi-chat usando Llam...
- Si quieres dominar la IA generativa, ignora todas las herramientas ...
Extracción de Fotogramas Clave y Detección de Límites de Escena
Este proceso incluye convertir el video en un número limitado de imágenes fijas. Video skim es otro término para este video más corto de tomas clave.
Las tomas de video son series continuas de fotogramas no interrumpidas. La detección de límites de escena detecta las transiciones entre tomas, como cortes, fundidos o disoluciones, y elige fotogramas de cada toma para construir un resumen. A continuación se muestran los principales pasos para extraer un resumen de video corto y continuo a partir de un video más largo:
- Extracción de Fotogramas: Se extrae una captura de video del video, podemos tomar 1fps para un video de 30fps.
- Detección de Rostros y Emociones: Luego podemos extraer rostros del video y calificar las emociones de los rostros para detectar las puntuaciones de las emociones. Detección de rostros utilizando SSD (Detector de Caja Múltiple de Disparo Único).
- Clasificación y Selección de Fotogramas: Seleccionar fotogramas que tengan una puntuación de emoción alta y luego clasificarlos.
- Extracción Final: Extraemos subtítulos del video junto con las marcas de tiempo. Luego extraemos las oraciones correspondientes a los fotogramas extraídos seleccionados anteriormente, junto con sus tiempos de inicio y finalización en el video. Finalmente, fusionamos las partes del video correspondientes a estos intervalos para generar el video de resumen final.
Reconocimiento de Acciones y Submuestreo Temporal
En esto intentamos identificar la acción humana realizada en el video, esta es una aplicación ampliamente utilizada del análisis de video. Descomponemos el video en pequeñas subsecuencias en lugar de fotogramas e intentamos estimar la acción realizada en el segmento mediante técnicas de clasificación y reconocimiento de patrones como HMC (Análisis de Cadena de Markov Oculta).
Enfoques Unimodales y Multimodales
En este artículo hemos utilizado un enfoque unimodal, donde utilizamos el audio del video para crear un resumen del video utilizando un resumen textual. Aquí utilizamos un solo aspecto del video, que es el audio, lo convertimos en texto y luego obtenemos un resumen utilizando ese texto.
En el enfoque multimodal, combinamos información de muchas modalidades como audio, visual y texto, para obtener un conocimiento holístico del contenido del video para una sumarización más precisa.
Aplicaciones de la Sumarización de Videos
Antes de adentrarnos en la implementación de nuestra sumarización de videos, debemos conocer las aplicaciones de la sumarización de videos. A continuación se muestran algunos ejemplos de sumarización de videos en una variedad de campos y dominios:
- Seguridad y vigilancia: La resumización de video nos permite analizar grandes cantidades de videos de vigilancia para resaltar eventos importantes sin tener que revisar manualmente el video.
- Educación y entrenamiento: Se pueden ofrecer notas clave y videos de entrenamiento para que los estudiantes puedan revisar el contenido del video sin tener que ver el video completo.
- Navegación de contenido: Youtube utiliza esto para resaltar partes importantes de los videos relevantes a la búsqueda del usuario, para que puedan decidir si quieren ver ese video en particular o no, según sus requisitos de búsqueda.
- Gestión de desastres: Para emergencias y crisis, la resumización de video puede permitir tomar acciones basadas en las situaciones resaltadas en el resumen del video.
Resumen del modelo Open AI Whisper
El modelo Whisper de Open AI es un reconocimiento automático de voz (ASR, por sus siglas en inglés). Se utiliza para transcribir audio de voz a texto.

Está basado en la arquitectura de transformadores, que apila bloques de codificador y decodificador con un mecanismo de atención que propaga información entre ellos. Tomará la grabación de audio, la dividirá en piezas de 30 segundos y procesará cada una individualmente. Para cada grabación de 30 segundos, el codificador codifica el audio y preserva la ubicación de cada palabra pronunciada, y el decodificador utiliza esta información codificada para determinar lo que se dijo.
El decodificador esperará tokens de toda esta información, que básicamente son cada palabra pronunciada. Luego repetirá este proceso para la siguiente palabra, utilizando toda la misma información para ayudarlo a identificar la siguiente palabra que tenga más sentido.

Ejemplo de código para resumir texto de video

1 – Instalar y cargar bibliotecas
!pip install yt-dlp openai-whisper hugchat
import yt_dlp
import whisper
from hugchat import hugchat
2 – Extraer audio de un enlace de video de Youtube
#Función para guardar el audio a partir del ID del video de Youtube de entrada
def download(video_id: str) -> str:
video_url = f'https://www.youtube.com/watch?v={video_id}'
ydl_opts = {
'format': 'm4a/bestaudio/best',
'paths': {'home': 'audio/'},
'outtmpl': {'default': '%(id)s.%(ext)s'},
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'm4a',
}]
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
error_code = ydl.download([video_url])
if error_code != 0:
raise Exception('Error al descargar el video')
return f'audio/{video_id}.m4a'
#Llamar a la función con el ID del video
file_path = download('A_JQK_k4Kyc&t=99s')
3 – Transcribir audio a texto usando Whisper
# Cargar el modelo Whisper
whisper_model = whisper.load_model("tiny")
# Función de transcripción de audio
def transcribe(file_path: str) -> str:
# `fp16` por defecto es `True`, lo que le indica al modelo que intente ejecutarse en la GPU.
transcripcion = whisper_model.transcribe(file_path, fp16=False)
return transcripcion['text']
# Llamar a la función de transcripción con la ruta del archivo de audio
transcript = transcribe('/content/audio/A_JQK_k4Kyc.m4a')
print(transcript)
4 – Resumir texto transcrito usando Hugging Chat
Para utilizar la API de Hugging Chat, necesitamos iniciar sesión o registrarnos en la plataforma de Hugging Face. Después de eso, en lugar de “nombre de usuario” y “contraseña”, debemos ingresar nuestras credenciales de Hugging Face.
from hugchat.login import Login
# iniciar sesión
sign = Login("nombre_de_usuario", "contraseña")
cookies = sign.login()
sign.saveCookiesToDir("/contenido")
# cargar cookies desde usercookies
cookies = sign.loadCookiesFromDir("/contenido") # Esto detectará si el archivo JSON existe, devolverá las cookies si existe y lanzará una excepción si no lo hace.
# Crear un ChatBot
chatbot = hugchat.ChatBot(cookies=cookies.get_dict()) # o cookie_path="usercookies/<email>.json"
print(chatbot.chat("¡Hola!"))
# Resumir Transcripción
print(chatbot.chat('''Resumir lo siguiente: '''+transcript))
Conclusión
En conclusión, el concepto de resumen es una fuerza transformadora en la gestión de información. Es una herramienta poderosa que destila contenido voluminoso en formas concisas y significativas, adaptadas al consumo acelerado del mundo actual.
A través de la integración de modelos de IA generativa como GPT-3 de OpenAI, la sumarización ha trascendido sus límites tradicionales, evolucionando en un proceso que no solo extrae, sino que genera resúmenes coherentes y contextualmente precisos.
El camino hacia la sumarización de videos revela su relevancia en diversos sectores. La implementación de la extracción de audio, la transcripción mediante Whisper y la sumarización a través de Hugging Face Chat pueden integrarse sin problemas para crear resúmenes textuales de videos.
Puntos clave
1. IA generativa: La sumarización de videos se puede lograr utilizando tecnologías de IA generativa como LLMs y ASR.
2. Aplicaciones en campos: La sumarización de videos es realmente beneficiosa en muchos campos importantes donde es necesario analizar grandes cantidades de videos para extraer información crucial.
3. Implementación básica: En este artículo, exploramos la implementación básica del código de sumarización de videos basado en la dimensión del audio.
4. Arquitectura del modelo: También aprendimos sobre la arquitectura básica del modelo Whisper de Open AI y su flujo de proceso.
Preguntas frecuentes
Los medios mostrados en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.