Spaces:
Running
Running
File size: 1,387 Bytes
4806866 c196faa 4806866 619d335 c196faa 4806866 c196faa 4806866 619d335 c196faa 4806866 619d335 4806866 619d335 4806866 619d335 4806866 d7ece34 4806866 c196faa 4806866 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import gradio as gr
import whisper
import os
model_size = list(whisper._MODELS.keys())
# main processing
def main(URL, model_size):
video_path = youtube_dl(URL)
text = transcript(video_path, model_size)
return text
# Transcribe text using Whisper
def transcript(video_path, model_size):
model = whisper.load_model(model_size)
result = model.transcribe(video_path)
return result["text"]
# Download the video
def youtube_dl(URL):
# Download the video
os.system(f"yt-dlp -f best -v {URL} -o target.mp4")
# Path of downloaded video
video_path = os.path.join(os.path.dirname(__file__), "target.mp4")
return video_path
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
with gr.Row():
url = gr.Textbox(placeholder = 'Youtube video URL', label = 'URL')
with gr.Row():
model_size = gr.Dropdown(choices = model_size, value = 'tiny', label = "Model")
with gr.Row():
transcribe_btn = gr.Button('Transcribe')
with gr.Column():
outputs = gr.Textbox(placeholder = 'Transcription of the video', label = 'Transcription')
transcribe_btn.click(fn = main,
inputs = [url, model_size],
outputs = outputs
)
if __name__ == "__main__":
demo.launch()
|