SherlockRamos's picture
Update app.py
b28b069 verified
import gradio as gr
from transformers import Whisper, AutoProcessor
import youtube_dl
# Carrega o modelo Whisper
model = Whisper("facebook/whisper-large")
# Carrega o processador adequado para o modelo
processor = AutoProcessor.from_pretrained("facebook/whisper-large")
# Função para transcrever áudio a partir de uma URL do YouTube
def transcribe_from_youtube_url(url):
ydl_opts = {
'format': 'bestaudio/best',
'outtmpl': '%(id)s.%(ext)s',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec':'mp3',
'preferredquality': '192',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(url, download=True)
audio_filename = ydl.prepare_filename(info)
ydl.process_item(info, None)
return transcribe_audio(audio_filename)
def transcribe_audio(audio_file):
result = model.transcribe(audio_file)
return processor.batch_transcribe(model, audio_file)
# Cria interface com Gradio
def launch_interface():
url_input = gr.inputs.Textbox(label="Insira a URL do YouTube")
output = gr.outputs.Textbox(label="Transcrição")
iface = gr.Interface(fn=transcribe_from_youtube_url, inputs=url_input, outputs=output, title="Transcrição de Áudio com Whisper a partir de URL do YouTube")
iface.launch(show_alert=True)
launch_interface()