Spaces:
Sleeping
Sleeping
File size: 2,339 Bytes
40b945b f0e5a8c 44e92a0 0755058 d6490f3 5ade7c5 d584e8b 40b945b d584e8b 612bd6f d584e8b f0e5a8c 8033e07 a68778f 40b945b 97ef95f 40b945b cb5becc 5ade7c5 40b945b 8deb6ea 00abedf a4e52b0 f215841 5a555d3 40b945b 0c7f668 adf4b56 b815ecd 40b945b 97ef95f 40b945b 98f72f4 40b945b 2593683 639f239 98f72f4 |
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 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import gradio as gr
import whisper
from pytube import YouTube
#from pytubefix import YouTube
#from pytubefix.cli import on_progress
from urllib.request import urlopen
loaded_model = whisper.load_model("medium")
current_size = 'medium'
def inference(link):
link = urlopen(link).read()
yt = YouTube(link)
#yt = YouTube(link, on_progress_callback=on_progress, use_po_token=True)
global audio_stream
audio_stream = yt.streams.filter(only_audio=True, file_extension='mp4').first()
path = audio_stream.download()
#path = yt.streams.get_audio_only().download(mp3=True)
options = whisper.DecodingOptions(language= 'Spanish', without_timestamps=True)
results = loaded_model.transcribe(path)
return results['text']
def change_model(size):
if size == current_size:
return
loaded_model = whisper.load_model(size)
current_size = size
def populate_metadata(link):
yt = YouTube(link)
return yt.thumbnail_url, yt.title
title=""
description=""
block = gr.Blocks()
with block:
gr.HTML(
"""
<div style="text-align: center; max-width: 500px; margin: 0 auto;">
<div>
</div>
</div>
"""
)
with gr.Group():
with gr.Group():
sz = gr.Dropdown(label="Model Size", choices=['tiny', 'base','small', 'medium', 'large'], value='medium')
link = gr.Textbox(label="YouTube Link")
gr.Markdown("Ejemplo: https://www.youtube.com/watch?v=bnvgcQB01mQ")
with gr.Row():
title = gr.Label(label="Video Title")
img = gr.Image(label="Thumbnail")
text = gr.Textbox(
label="Transcription",
placeholder="Transcription Output",
lines=5)
with gr.Row():
btn = gr.Button("Transcribe")
# Events
btn.click(inference, inputs=[link], outputs=[text])
link.change(populate_metadata, inputs=[link], outputs=[img, title])
sz.change(change_model, inputs=[sz], outputs=[])
#block.launch()
#demo = gr.Interface(css="footer {visibility: hidden}", examples='https://www.youtube.com/watch?v=bnvgcQB01mQ')
demo = gr.Interface(css="foot {visibility: hidden}", fn=inference, inputs=[link], outputs=[text])
demo.launch() |