Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
import speech_recognition as sr | |
import moviepy.editor as mp | |
def summarize_youtube_video(link): | |
try: | |
# Download and convert the YouTube video to audio | |
video = mp.VideoFileClip(link) | |
video.audio.write_audiofile("audio.wav") | |
# Convert speech to text using Google Web Speech API | |
recognizer = sr.Recognizer() | |
with sr.AudioFile("audio.wav") as source: | |
audio = recognizer.record(source) | |
transcript = recognizer.recognize_google(audio) | |
checkpoint = "facebook/bart-large-cnn" | |
tokenizer = AutoTokenizer.from_pretrained(checkpoint) | |
model = AutoModelForSeq2SeqLM.from_pretrained(checkpoint) | |
inputs = tokenizer(transcript, | |
max_length=1024, | |
truncation=True, | |
return_tensors="pt") | |
summary_ids = model.generate(inputs["input_ids"]) | |
summary = tokenizer.batch_decode(summary_ids, | |
skip_special_tokens=True, | |
clean_up_tokenization_spaces=False) | |
return summary[0] | |
except Exception as e: | |
return "SummarizationError: Could not generate a summary" | |
# Define the input and output components for Gradio | |
inputs = gr.inputs.Textbox(label="YouTube Video Link") | |
outputs = gr.outputs.Textbox() | |
# Create the Gradio interface | |
gr.Interface(fn=summarize_youtube_video, inputs=inputs, outputs=outputs, title="YouTube Video Summarizer").launch(debug=True) | |