gamer098890's picture
Update app.py
2fb9bf2 verified
import whisper
from transformers import pipeline
import ffmpeg
import os
import streamlit as st
import torch
# Step 1: File Upload in Streamlit
uploaded_file = st.file_uploader("Upload a video file", type=["mp4", "mkv", "avi", "mov"])
if uploaded_file is not None:
# Save the uploaded video file
video_path = "uploaded_video.mp4"
with open(video_path, "wb") as f:
f.write(uploaded_file.getbuffer())
# Step 2: Process the Video
# Load Whisper Model for Transcription
whisper_model = whisper.load_model("base")
# Extract audio from video using ffmpeg
audio_path = "audio.wav"
ffmpeg.input(video_path).output(audio_path).run(overwrite_output=True)
# Transcribe Audio
transcription = whisper_model.transcribe(audio_path)["text"]
st.write("Transcription:\n", transcription)
# Summarize Transcription using Hugging Face Transformers
summarizer = pipeline("summarization", model="facebook/bart-large-cnn", device=0 if torch.cuda.is_available() else -1)
summary = summarizer(transcription, max_length=150, min_length=30, do_sample=False)[0]["summary_text"]
st.write("\nSummary:\n", summary)
# Cleanup
os.remove(audio_path)
os.remove(video_path)