|
import whisper |
|
from transformers import pipeline |
|
import ffmpeg |
|
import os |
|
import streamlit as st |
|
import torch |
|
|
|
|
|
uploaded_file = st.file_uploader("Upload a video file", type=["mp4", "mkv", "avi", "mov"]) |
|
|
|
if uploaded_file is not None: |
|
|
|
video_path = "uploaded_video.mp4" |
|
with open(video_path, "wb") as f: |
|
f.write(uploaded_file.getbuffer()) |
|
|
|
|
|
|
|
whisper_model = whisper.load_model("base") |
|
|
|
|
|
audio_path = "audio.wav" |
|
ffmpeg.input(video_path).output(audio_path).run(overwrite_output=True) |
|
|
|
|
|
transcription = whisper_model.transcribe(audio_path)["text"] |
|
st.write("Transcription:\n", transcription) |
|
|
|
|
|
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) |
|
|
|
|
|
os.remove(audio_path) |
|
os.remove(video_path) |
|
|