Proyecto 6: Análisis y Resumen de Video Multimodal
Paso 3: Transcribir Audio del Video
Extraer el audio del video y transcribirlo usando Whisper, un modelo avanzado de reconocimiento de voz desarrollado por OpenAI. Whisper sobresale en la conversión de palabras habladas a texto con alta precisión en múltiples idiomas y acentos.
El modelo puede manejar diversas calidades de audio y niveles de ruido de fondo, haciéndolo ideal para procesar contenido de video. Durante este paso, separaremos la pista de audio del archivo de video y la procesaremos con Whisper para generar una transcripción detallada que captura no solo las palabras, sino que también mantiene la puntuación adecuada y la atribución del hablante cuando es posible.
import librosa
from transformers import WhisperProcessor, WhisperForConditionalGeneration
# Load Whisper model and processor
processor = WhisperProcessor.from_pretrained("openai/whisper-small")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-small")
# Extract audio from video
def extract_audio(video_path, output_audio_path="audio.wav"):
cap = cv2.VideoCapture(video_path)
fps = int(cap.get(cv2.CAP_PROP_FPS))
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
duration = total_frames / fps
cap.release()
# Convert to audio using ffmpeg (requires ffmpeg installed)
import subprocess
subprocess.run(["ffmpeg", "-i", video_path, "-q:a", "0", "-map", "a", output_audio_path])
# Transcribe audio
audio_path = "audio.wav"
extract_audio(video_path, audio_path)
audio, rate = librosa.load(audio_path, sr=16000)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
generated_ids = model.generate(inputs["input_features"])
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(f"Transcription: {transcription}")
Permítanme desglosar este código que maneja la extracción y transcripción de audio del video:
1. Importación de Bibliotecas y Configuración del Modelo
- Utiliza librosa para el procesamiento de audio y el modelo Whisper de la biblioteca transformers
- Inicializa el modelo y procesador Whisper, específicamente usando la variante "whisper-small" para un procesamiento eficiente
2. Función de Extracción de Audio
- La función
extract_audio
se encarga de convertir video a audio: - Captura metadatos del video (fps y cantidad de fotogramas)
- Utiliza ffmpeg para extraer la pista de audio y guardarla como archivo WAV
3. Proceso de Transcripción de Audio
- El flujo de trabajo de transcripción incluye:
- Cargar el archivo de audio extraído usando librosa a una tasa de muestreo de 16kHz
- Procesar el audio a través del modelo Whisper
- Decodificar la salida del modelo en texto legible
El modelo Whisper es particularmente potente ya que puede manejar diversas calidades de audio y mantener la puntuación y atribución de hablantes adecuada.
Paso 3: Transcribir Audio del Video
Extraer el audio del video y transcribirlo usando Whisper, un modelo avanzado de reconocimiento de voz desarrollado por OpenAI. Whisper sobresale en la conversión de palabras habladas a texto con alta precisión en múltiples idiomas y acentos.
El modelo puede manejar diversas calidades de audio y niveles de ruido de fondo, haciéndolo ideal para procesar contenido de video. Durante este paso, separaremos la pista de audio del archivo de video y la procesaremos con Whisper para generar una transcripción detallada que captura no solo las palabras, sino que también mantiene la puntuación adecuada y la atribución del hablante cuando es posible.
import librosa
from transformers import WhisperProcessor, WhisperForConditionalGeneration
# Load Whisper model and processor
processor = WhisperProcessor.from_pretrained("openai/whisper-small")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-small")
# Extract audio from video
def extract_audio(video_path, output_audio_path="audio.wav"):
cap = cv2.VideoCapture(video_path)
fps = int(cap.get(cv2.CAP_PROP_FPS))
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
duration = total_frames / fps
cap.release()
# Convert to audio using ffmpeg (requires ffmpeg installed)
import subprocess
subprocess.run(["ffmpeg", "-i", video_path, "-q:a", "0", "-map", "a", output_audio_path])
# Transcribe audio
audio_path = "audio.wav"
extract_audio(video_path, audio_path)
audio, rate = librosa.load(audio_path, sr=16000)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
generated_ids = model.generate(inputs["input_features"])
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(f"Transcription: {transcription}")
Permítanme desglosar este código que maneja la extracción y transcripción de audio del video:
1. Importación de Bibliotecas y Configuración del Modelo
- Utiliza librosa para el procesamiento de audio y el modelo Whisper de la biblioteca transformers
- Inicializa el modelo y procesador Whisper, específicamente usando la variante "whisper-small" para un procesamiento eficiente
2. Función de Extracción de Audio
- La función
extract_audio
se encarga de convertir video a audio: - Captura metadatos del video (fps y cantidad de fotogramas)
- Utiliza ffmpeg para extraer la pista de audio y guardarla como archivo WAV
3. Proceso de Transcripción de Audio
- El flujo de trabajo de transcripción incluye:
- Cargar el archivo de audio extraído usando librosa a una tasa de muestreo de 16kHz
- Procesar el audio a través del modelo Whisper
- Decodificar la salida del modelo en texto legible
El modelo Whisper es particularmente potente ya que puede manejar diversas calidades de audio y mantener la puntuación y atribución de hablantes adecuada.
Paso 3: Transcribir Audio del Video
Extraer el audio del video y transcribirlo usando Whisper, un modelo avanzado de reconocimiento de voz desarrollado por OpenAI. Whisper sobresale en la conversión de palabras habladas a texto con alta precisión en múltiples idiomas y acentos.
El modelo puede manejar diversas calidades de audio y niveles de ruido de fondo, haciéndolo ideal para procesar contenido de video. Durante este paso, separaremos la pista de audio del archivo de video y la procesaremos con Whisper para generar una transcripción detallada que captura no solo las palabras, sino que también mantiene la puntuación adecuada y la atribución del hablante cuando es posible.
import librosa
from transformers import WhisperProcessor, WhisperForConditionalGeneration
# Load Whisper model and processor
processor = WhisperProcessor.from_pretrained("openai/whisper-small")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-small")
# Extract audio from video
def extract_audio(video_path, output_audio_path="audio.wav"):
cap = cv2.VideoCapture(video_path)
fps = int(cap.get(cv2.CAP_PROP_FPS))
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
duration = total_frames / fps
cap.release()
# Convert to audio using ffmpeg (requires ffmpeg installed)
import subprocess
subprocess.run(["ffmpeg", "-i", video_path, "-q:a", "0", "-map", "a", output_audio_path])
# Transcribe audio
audio_path = "audio.wav"
extract_audio(video_path, audio_path)
audio, rate = librosa.load(audio_path, sr=16000)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
generated_ids = model.generate(inputs["input_features"])
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(f"Transcription: {transcription}")
Permítanme desglosar este código que maneja la extracción y transcripción de audio del video:
1. Importación de Bibliotecas y Configuración del Modelo
- Utiliza librosa para el procesamiento de audio y el modelo Whisper de la biblioteca transformers
- Inicializa el modelo y procesador Whisper, específicamente usando la variante "whisper-small" para un procesamiento eficiente
2. Función de Extracción de Audio
- La función
extract_audio
se encarga de convertir video a audio: - Captura metadatos del video (fps y cantidad de fotogramas)
- Utiliza ffmpeg para extraer la pista de audio y guardarla como archivo WAV
3. Proceso de Transcripción de Audio
- El flujo de trabajo de transcripción incluye:
- Cargar el archivo de audio extraído usando librosa a una tasa de muestreo de 16kHz
- Procesar el audio a través del modelo Whisper
- Decodificar la salida del modelo en texto legible
El modelo Whisper es particularmente potente ya que puede manejar diversas calidades de audio y mantener la puntuación y atribución de hablantes adecuada.
Paso 3: Transcribir Audio del Video
Extraer el audio del video y transcribirlo usando Whisper, un modelo avanzado de reconocimiento de voz desarrollado por OpenAI. Whisper sobresale en la conversión de palabras habladas a texto con alta precisión en múltiples idiomas y acentos.
El modelo puede manejar diversas calidades de audio y niveles de ruido de fondo, haciéndolo ideal para procesar contenido de video. Durante este paso, separaremos la pista de audio del archivo de video y la procesaremos con Whisper para generar una transcripción detallada que captura no solo las palabras, sino que también mantiene la puntuación adecuada y la atribución del hablante cuando es posible.
import librosa
from transformers import WhisperProcessor, WhisperForConditionalGeneration
# Load Whisper model and processor
processor = WhisperProcessor.from_pretrained("openai/whisper-small")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-small")
# Extract audio from video
def extract_audio(video_path, output_audio_path="audio.wav"):
cap = cv2.VideoCapture(video_path)
fps = int(cap.get(cv2.CAP_PROP_FPS))
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
duration = total_frames / fps
cap.release()
# Convert to audio using ffmpeg (requires ffmpeg installed)
import subprocess
subprocess.run(["ffmpeg", "-i", video_path, "-q:a", "0", "-map", "a", output_audio_path])
# Transcribe audio
audio_path = "audio.wav"
extract_audio(video_path, audio_path)
audio, rate = librosa.load(audio_path, sr=16000)
inputs = processor(audio, sampling_rate=16000, return_tensors="pt")
generated_ids = model.generate(inputs["input_features"])
transcription = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(f"Transcription: {transcription}")
Permítanme desglosar este código que maneja la extracción y transcripción de audio del video:
1. Importación de Bibliotecas y Configuración del Modelo
- Utiliza librosa para el procesamiento de audio y el modelo Whisper de la biblioteca transformers
- Inicializa el modelo y procesador Whisper, específicamente usando la variante "whisper-small" para un procesamiento eficiente
2. Función de Extracción de Audio
- La función
extract_audio
se encarga de convertir video a audio: - Captura metadatos del video (fps y cantidad de fotogramas)
- Utiliza ffmpeg para extraer la pista de audio y guardarla como archivo WAV
3. Proceso de Transcripción de Audio
- El flujo de trabajo de transcripción incluye:
- Cargar el archivo de audio extraído usando librosa a una tasa de muestreo de 16kHz
- Procesar el audio a través del modelo Whisper
- Decodificar la salida del modelo en texto legible
El modelo Whisper es particularmente potente ya que puede manejar diversas calidades de audio y mantener la puntuación y atribución de hablantes adecuada.