RenanOF commited on
Commit
b81e9cf
·
verified ·
1 Parent(s): a30947d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -57
app.py CHANGED
@@ -1,64 +1,24 @@
1
  import gradio as gr
2
- import whisper
3
- import yt_dlp
4
- from pydub import AudioSegment
5
- import tempfile
6
- import os
7
 
8
- # Carregar o modelo Whisper
9
- model = whisper.load_model("base")
10
 
11
- # Função para transcrever áudio local
12
- def transcrever_audio(audio):
13
- if not audio:
14
- return "Por favor, envie um arquivo de áudio."
15
- result = model.transcribe(audio.name)
16
- return result["text"]
17
 
18
- # Função para transcrever áudio de YouTube
19
- def transcrever_youtube(link):
20
- if not link:
21
- return "Por favor, insira um link do YouTube."
22
-
23
- # Baixar o áudio do YouTube
24
- ydl_opts = {
25
- "format": "bestaudio/best",
26
- "outtmpl": "audio.%(ext)s",
27
- "postprocessors": [{
28
- "key": "FFmpegExtractAudio",
29
- "preferredcodec": "mp3",
30
- "preferredquality": "192",
31
- }],
32
- "quiet": True,
33
- }
34
-
35
- with yt_dlp.YoutubeDL(ydl_opts) as ydl:
36
- info = ydl.extract_info(link, download=True)
37
- audio_path = info['requested_downloads'][0]['filepath']
38
-
39
- # Transcrever
40
- result = model.transcribe(audio_path)
41
- os.remove(audio_path) # Limpar arquivo temporário
42
- return result["text"]
43
-
44
- # Interface com abas
45
  with gr.Blocks() as demo:
46
- gr.Markdown("## **Transcritor Whisper - Áudio para Texto**")
47
-
48
- with gr.Tab("Arquivo de Áudio"):
49
- gr.Markdown("Envie um arquivo de áudio para transcrever.")
50
- arquivo_audio = gr.Audio(type="numpy", label="Envie seu arquivo de áudio")
51
- botao_audio = gr.Button("Transcrever")
52
- resultado_audio = gr.Textbox(label="Transcrição")
53
- botao_audio.click(transcrever_audio, inputs=arquivo_audio, outputs=resultado_audio)
54
 
55
- with gr.Tab("YouTube"):
56
- gr.Markdown("Insira o link de um vídeo do YouTube para transcrição.")
57
- link_youtube = gr.Textbox(label="URL do YouTube")
58
- botao_youtube = gr.Button("Transcrever")
59
- resultado_youtube = gr.Textbox(label="Transcrição")
60
- botao_youtube.click(transcrever_youtube, inputs=link_youtube, outputs=resultado_youtube)
61
 
62
- # Executar o app
63
- if __name__ == "__main__":
64
- demo.launch(server_name="0.0.0.0", server_port=7860)
 
1
  import gradio as gr
2
+ from transformers import pipeline
 
 
 
 
3
 
4
+ # Inicialize o modelo de transcrição Whisper
5
+ transcriber = pipeline("automatic-speech-recognition", model="openai/whisper-base")
6
 
7
+ # Função para transcrever o áudio
8
+ def transcribe(audio_file):
9
+ transcription = transcriber(audio_file)["text"]
10
+ return transcription
 
 
11
 
12
+ # Interface gráfica com Gradio
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  with gr.Blocks() as demo:
14
+ gr.Markdown("# Whisper Transcription")
15
+ with gr.Row():
16
+ audio_input = gr.Audio(source="microphone", type="filepath", label="Grave ou envie um áudio")
17
+ transcription_output = gr.Textbox(label="Transcrição")
18
+ transcribe_button = gr.Button("Transcrever")
 
 
 
19
 
20
+ # Vincular ação ao botão
21
+ transcribe_button.click(transcribe, inputs=[audio_input], outputs=[transcription_output])
 
 
 
 
22
 
23
+ # Rodar a aplicação
24
+ demo.launch()