dini15 commited on
Commit
35e43fd
·
verified ·
1 Parent(s): 3c522b4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -11
app.py CHANGED
@@ -1,20 +1,37 @@
1
  import gradio as gr
2
  import whisper
3
  import yt_dlp
4
- import os
5
  import torch
 
 
 
 
 
 
 
 
 
 
 
 
6
 
7
  # Load model Whisper (bisa pilih: tiny, base, small, medium, large)
8
- model = whisper.load_model("small")
9
 
10
  # Fungsi untuk transkripsi dari file
11
  def transcribe_audio(file):
12
  audio = whisper.load_audio(file)
13
- audio = whisper.pad_or_trim(audio)
14
- mel = whisper.log_mel_spectrogram(audio).to(model.device)
15
- _, probs = model.detect_language(mel)
16
- result = model.transcribe(file)
17
- return f"**Detected Language:** {max(probs, key=probs.get).upper()}\n\n**Transcription:**\n{result['text']}"
 
 
 
 
 
 
18
 
19
  # Fungsi untuk ambil audio dari YouTube
20
  def get_audio_from_youtube(url):
@@ -25,7 +42,7 @@ def get_audio_from_youtube(url):
25
  }
26
  with yt_dlp.YoutubeDL(ydl_opts) as ydl:
27
  info = ydl.extract_info(url, download=True)
28
- return f"temp_audio.mp3"
29
 
30
  # Fungsi untuk transkripsi dari YouTube
31
  def transcribe_youtube(url):
@@ -49,8 +66,5 @@ with gr.Blocks() as app:
49
  file_transcribe_button.click(transcribe_audio, inputs=audio_input, outputs=file_output)
50
  yt_transcribe_button.click(transcribe_youtube, inputs=youtube_url, outputs=yt_output)
51
 
52
- os.environ["GRADIO_NODE_PATH"] = "/usr/bin/node"
53
- os.environ["GRADIO_NODE_PORT"] = "9000"
54
-
55
  # Run Gradio app
56
  app.launch()
 
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
37
  def get_audio_from_youtube(url):
 
42
  }
43
  with yt_dlp.YoutubeDL(ydl_opts) as ydl:
44
  info = ydl.extract_info(url, download=True)
45
+ return "temp_audio.mp3"
46
 
47
  # Fungsi untuk transkripsi dari YouTube
48
  def transcribe_youtube(url):
 
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
70
  app.launch()