TGPro1 commited on
Commit
dc35ead
·
verified ·
1 Parent(s): cca4ab6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -0
app.py CHANGED
@@ -1,11 +1,18 @@
 
1
  import gradio as gr
2
  import os
3
  import torch
4
  from pyannote.audio import Pipeline
5
 
 
 
 
6
  # Configuration
7
  HF_TOKEN = os.environ.get('HF_TOKEN')
8
 
 
 
 
9
  # Pyannote Diarization
10
  diarization_pipeline = None
11
  try:
@@ -22,6 +29,10 @@ try:
22
  except Exception as e:
23
  print(f"Pyannote Error: {e}")
24
 
 
 
 
 
25
  def diarize_audio(audio_path, min_speakers=1, max_speakers=5):
26
  if not diarization_pipeline:
27
  return {"error": "Diarization not available. Check HF_TOKEN."}
@@ -34,6 +45,9 @@ def diarize_audio(audio_path, min_speakers=1, max_speakers=5):
34
  except Exception as e:
35
  return {"error": str(e)}
36
 
 
 
 
37
  with gr.Blocks(title="STTR - Speaker Diarization") as demo:
38
  gr.Markdown("# STTR - Speaker Diarization")
39
  gr.Markdown("### Identify who speaks when (pyannote 3.1)")
@@ -46,5 +60,8 @@ with gr.Blocks(title="STTR - Speaker Diarization") as demo:
46
  output = gr.JSON(label="Speaker Segments")
47
  btn.click(diarize_audio, [audio_in, min_spk, max_spk], output, api_name="/diarize")
48
 
 
 
 
49
  if __name__ == "__main__":
50
  demo.launch(server_name="0.0.0.0", server_port=int(os.environ.get("PORT", 7860)))
 
1
+ import spaces
2
  import gradio as gr
3
  import os
4
  import torch
5
  from pyannote.audio import Pipeline
6
 
7
+
8
+
9
+
10
  # Configuration
11
  HF_TOKEN = os.environ.get('HF_TOKEN')
12
 
13
+
14
+
15
+
16
  # Pyannote Diarization
17
  diarization_pipeline = None
18
  try:
 
29
  except Exception as e:
30
  print(f"Pyannote Error: {e}")
31
 
32
+
33
+
34
+
35
+ @spaces.GPU
36
  def diarize_audio(audio_path, min_speakers=1, max_speakers=5):
37
  if not diarization_pipeline:
38
  return {"error": "Diarization not available. Check HF_TOKEN."}
 
45
  except Exception as e:
46
  return {"error": str(e)}
47
 
48
+
49
+
50
+
51
  with gr.Blocks(title="STTR - Speaker Diarization") as demo:
52
  gr.Markdown("# STTR - Speaker Diarization")
53
  gr.Markdown("### Identify who speaks when (pyannote 3.1)")
 
60
  output = gr.JSON(label="Speaker Segments")
61
  btn.click(diarize_audio, [audio_in, min_spk, max_spk], output, api_name="/diarize")
62
 
63
+
64
+
65
+
66
  if __name__ == "__main__":
67
  demo.launch(server_name="0.0.0.0", server_port=int(os.environ.get("PORT", 7860)))