aidn commited on
Commit
b615635
Β·
verified Β·
1 Parent(s): b077847

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -2
app.py CHANGED
@@ -179,7 +179,7 @@ def format_diarized(segments):
179
 
180
  # ── Haupt-Pipeline ─────────────────────────────────────────────────────────────
181
 
182
- @spaces.GPU(duration=300)
183
  def run_pipeline(audio_array, sample_rate, model_key, use_diar):
184
  device = "cuda" if torch.cuda.is_available() else "cpu"
185
  dtype = torch.float16 if device == "cuda" else torch.float32
@@ -207,6 +207,8 @@ def run_pipeline(audio_array, sample_rate, model_key, use_diar):
207
 
208
  # ── Gradio-Handler ────────────────────────────────────────────────────────────
209
 
 
 
210
  def transcribe(audio, model_key, use_diar):
211
  if audio is None:
212
  yield "Kein Audio eingegeben.", ""
@@ -217,6 +219,15 @@ def transcribe(audio, model_key, use_diar):
217
  audio_data = audio_data.astype(np.float32)
218
  if audio_data.max() > 1.0:
219
  audio_data /= 32768.0
 
 
 
 
 
 
 
 
 
220
  yield "GPU wird angefordert ...", ""
221
  transcript, labeled = run_pipeline(audio_data, sample_rate, model_key, use_diar)
222
  yield transcript, labeled
@@ -341,7 +352,7 @@ with gr.Blocks(title="Yapper - Meeting Transcriber") as demo:
341
  <div class="icon">πŸŽ™οΈ</div>
342
  <div>
343
  <h1 style="margin:0;font-size:1.7rem;font-weight:700;color:#ffffff;letter-spacing:-.3px;">Yapper</h1>
344
- <h3 style="margin:4px 0 0;font-size:.87rem;color:#ffffff;opacity:.9;">Transkription &amp; Speaker-Diarisierung &nbsp;&middot;&nbsp; fΓΌr Teams-Meetings</h3>
345
  </div>
346
  <div class="badge">&#x26A1; ZeroGPU</div>
347
  </div>
 
179
 
180
  # ── Haupt-Pipeline ─────────────────────────────────────────────────────────────
181
 
182
+ @spaces.GPU(duration=60)
183
  def run_pipeline(audio_array, sample_rate, model_key, use_diar):
184
  device = "cuda" if torch.cuda.is_available() else "cpu"
185
  dtype = torch.float16 if device == "cuda" else torch.float32
 
207
 
208
  # ── Gradio-Handler ────────────────────────────────────────────────────────────
209
 
210
+ MAX_DURATION_S = 1201 # 20 Min. Audio
211
+
212
  def transcribe(audio, model_key, use_diar):
213
  if audio is None:
214
  yield "Kein Audio eingegeben.", ""
 
219
  audio_data = audio_data.astype(np.float32)
220
  if audio_data.max() > 1.0:
221
  audio_data /= 32768.0
222
+
223
+ duration_s = len(audio_data) / sample_rate
224
+ if duration_s > MAX_DURATION_S:
225
+ yield (
226
+ f"Audio ist {duration_s:.0f}s lang – maximal {MAX_DURATION_S}s (20 Min.) erlaubt.",
227
+ ""
228
+ )
229
+ return
230
+
231
  yield "GPU wird angefordert ...", ""
232
  transcript, labeled = run_pipeline(audio_data, sample_rate, model_key, use_diar)
233
  yield transcript, labeled
 
352
  <div class="icon">πŸŽ™οΈ</div>
353
  <div>
354
  <h1 style="margin:0;font-size:1.7rem;font-weight:700;color:#ffffff;letter-spacing:-.3px;">Yapper</h1>
355
+ <p style="margin:4px 0 0;font-size:.87rem;color:#ffffff;opacity:.9;">Transkription &amp; Speaker-Diarisierung &nbsp;&middot;&nbsp; fΓΌr eure Teams-Meetings</p>
356
  </div>
357
  <div class="badge">&#x26A1; ZeroGPU</div>
358
  </div>