dini15 commited on
Commit
3bfabc7
·
verified ·
1 Parent(s): 8a48a94

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -22
app.py CHANGED
@@ -1,36 +1,21 @@
1
  import gradio as gr
2
- import whisper
3
  import yt_dlp
4
  import torch
5
  import numpy as np
6
- import os
7
  from faster_whisper import WhisperModel
8
 
9
- # Load model Whisper
10
  model = WhisperModel("small", device="cpu", compute_type="float32")
11
 
 
12
  def transcribe_audio(file):
13
  segments, _ = model.transcribe(file)
14
  transcript = "\n".join(segment.text for segment in segments)
15
- return f"**Transcription:**\n{transcript}"
16
-
17
-
18
- # Load model Whisper (bisa pilih: tiny, base, small, medium, large)
19
- model = WhisperModel("small", device="cpu", compute_type="float32")
20
-
21
- # Fungsi untuk transkripsi dari file
22
- def transcribe_audio(file):
23
- audio = whisper.load_audio(file)
24
 
25
- # Konversi tensor ke NumPy jika diperlukan
26
- if isinstance(audio, torch.Tensor):
27
- audio = audio.cpu().numpy().astype(np.float32)
28
 
29
- # Transkripsi menggunakan faster-whisper
30
- segments, _ = model.transcribe(audio)
31
-
32
- transcript = "\n".join(segment.text for segment in segments)
33
-
34
  return f"**Transcription:**\n{transcript}"
35
 
36
  # Fungsi untuk ambil audio dari YouTube
@@ -57,13 +42,14 @@ with gr.Blocks() as app:
57
  audio_input = gr.File(label="Upload Audio File")
58
  file_transcribe_button = gr.Button("Transcribe")
59
  file_output = gr.Textbox(label="Transcription")
60
-
 
61
  with gr.Tab("YouTube Video"):
62
  youtube_url = gr.Textbox(label="YouTube URL")
63
  yt_transcribe_button = gr.Button("Transcribe")
64
  yt_output = gr.Textbox(label="Transcription")
65
 
66
- file_transcribe_button.click(transcribe_audio, inputs=audio_input, outputs=file_output)
67
  yt_transcribe_button.click(transcribe_youtube, inputs=youtube_url, outputs=yt_output)
68
 
69
  # Run Gradio app
 
1
  import gradio as gr
 
2
  import yt_dlp
3
  import torch
4
  import numpy as np
 
5
  from faster_whisper import WhisperModel
6
 
7
+ # Load model sekali aja
8
  model = WhisperModel("small", device="cpu", compute_type="float32")
9
 
10
+ # Fungsi untuk transkripsi dari file
11
  def transcribe_audio(file):
12
  segments, _ = model.transcribe(file)
13
  transcript = "\n".join(segment.text for segment in segments)
 
 
 
 
 
 
 
 
 
14
 
15
+ # Simpan ke file TXT
16
+ with open("transcription.txt", "w", encoding="utf-8") as f:
17
+ f.write(transcript)
18
 
 
 
 
 
 
19
  return f"**Transcription:**\n{transcript}"
20
 
21
  # Fungsi untuk ambil audio dari YouTube
 
42
  audio_input = gr.File(label="Upload Audio File")
43
  file_transcribe_button = gr.Button("Transcribe")
44
  file_output = gr.Textbox(label="Transcription")
45
+ download_file = gr.File(label="Download Transcription", value="transcription.txt")
46
+
47
  with gr.Tab("YouTube Video"):
48
  youtube_url = gr.Textbox(label="YouTube URL")
49
  yt_transcribe_button = gr.Button("Transcribe")
50
  yt_output = gr.Textbox(label="Transcription")
51
 
52
+ file_transcribe_button.click(transcribe_audio, inputs=audio_input, outputs=[file_output, download_file])
53
  yt_transcribe_button.click(transcribe_youtube, inputs=youtube_url, outputs=yt_output)
54
 
55
  # Run Gradio app