Spaces:
Runtime error
Runtime error
| import pathlib | |
| import time | |
| import gradio as gr | |
| import youtube_dl | |
| import whisper | |
| ydl_opts = { | |
| 'format': 'bestaudio/best', | |
| 'forcefilename': True | |
| } | |
| ydl = youtube_dl.YoutubeDL(ydl_opts) | |
| models = { | |
| "tiny": whisper.load_model("tiny"), | |
| "base": whisper.load_model("base"), | |
| "small": whisper.load_model("small"), | |
| "medium": whisper.load_model("medium") | |
| } | |
| examples = [ | |
| ["tiny", "https://www.youtube.com/watch?v=-tJYN-eG1zk", "en"], | |
| ["base", "https://www.youtube.com/watch?v=kMNPv_HXffQ", "es"] | |
| ] | |
| def get_lyrics(model_v, video_url, language): | |
| t_init = time.time() | |
| info = ydl.extract_info(video_url, download=False) | |
| print(time.time() - t_init) | |
| file_path = ydl.prepare_filename(info) | |
| print(time.time() - t_init) | |
| # ydl.download([video_url]) | |
| if not pathlib.Path(file_path).exists(): | |
| ydl.process_info(info) | |
| print(time.time() - t_init) | |
| return info["title"], file_path, models[model_v].transcribe(file_path, language=language, fp16=False)["text"] | |
| iface = gr.Interface(fn=get_lyrics, | |
| inputs=[ | |
| gr.Dropdown(choices=list(models.keys()), value="base"), | |
| "text", | |
| gr.Dropdown(choices=["en", "es", "fr", "pt", "it", "ge", "ko", "ch", "ja", "de", "nr", "sw", | |
| "ar"], value="en") | |
| ], | |
| examples=examples, | |
| outputs=[ | |
| gr.Text(label="Título"), | |
| gr.Audio(label="Audio"), | |
| gr.Textbox(label="Letra") | |
| ], | |
| cache_examples=True) | |
| iface.launch() | |