masumtechnonext commited on
Commit
b50ecc9
·
verified ·
1 Parent(s): 93f3e99

Upload app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +6 -0
app.py CHANGED
@@ -2,6 +2,7 @@ import json
2
  import os
3
 
4
  import gradio as gr
 
5
  import torch
6
  import torchaudio
7
  from huggingface_hub import hf_hub_download
@@ -23,10 +24,14 @@ UNKNOWN_ID = next(i for i, label in id2label.items() if label == "Unknown")
23
  LETTERS = sorted(label for label in id2label.values() if label != "Unknown")
24
 
25
 
 
26
  def predict(audio, target_letter):
27
  if audio is None:
28
  return "Record or upload audio first.", ""
29
 
 
 
 
30
  sample_rate, waveform = audio
31
  waveform = torch.tensor(waveform, dtype=torch.float32)
32
  if waveform.ndim > 1:
@@ -35,6 +40,7 @@ def predict(audio, target_letter):
35
  waveform = torchaudio.functional.resample(waveform, sample_rate, SAMPLE_RATE)
36
 
37
  inputs = feature_extractor(waveform.numpy(), sampling_rate=SAMPLE_RATE, return_tensors="pt")
 
38
 
39
  with torch.no_grad():
40
  logits = model(**inputs).logits[0]
 
2
  import os
3
 
4
  import gradio as gr
5
+ import spaces
6
  import torch
7
  import torchaudio
8
  from huggingface_hub import hf_hub_download
 
24
  LETTERS = sorted(label for label in id2label.values() if label != "Unknown")
25
 
26
 
27
+ @spaces.GPU
28
  def predict(audio, target_letter):
29
  if audio is None:
30
  return "Record or upload audio first.", ""
31
 
32
+ device = "cuda" if torch.cuda.is_available() else "cpu"
33
+ model.to(device)
34
+
35
  sample_rate, waveform = audio
36
  waveform = torch.tensor(waveform, dtype=torch.float32)
37
  if waveform.ndim > 1:
 
40
  waveform = torchaudio.functional.resample(waveform, sample_rate, SAMPLE_RATE)
41
 
42
  inputs = feature_extractor(waveform.numpy(), sampling_rate=SAMPLE_RATE, return_tensors="pt")
43
+ inputs = {k: v.to(device) for k, v in inputs.items()}
44
 
45
  with torch.no_grad():
46
  logits = model(**inputs).logits[0]