Mrkomiljon commited on
Commit
702aa95
·
verified ·
1 Parent(s): 5a5b5ec

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -0
app.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import Wav2Vec2ForSequenceClassification, Wav2Vec2Processor
3
+ import torch
4
+ import torchaudio
5
+
6
+ model_name = "Mrkomiljon/voiceGUARD/wav2vec2_finetuned_model"
7
+ model = Wav2Vec2ForSequenceClassification.from_pretrained(model_name)
8
+ processor = Wav2Vec2Processor.from_pretrained(model_name)
9
+ model.eval()
10
+
11
+ def classify_audio(audio_file):
12
+ waveform, sample_rate = torchaudio.load(audio_file)
13
+ if sample_rate != 16000:
14
+ resampler = torchaudio.transforms.Resample(orig_freq=sample_rate, new_freq=16000)
15
+ waveform = resampler(waveform)
16
+ if waveform.size(1) > 16000 * 10:
17
+ waveform = waveform[:, :16000 * 10]
18
+ elif waveform.size(1) < 16000 * 10:
19
+ waveform = torch.nn.functional.pad(waveform, (0, 16000 * 10 - waveform.size(1)))
20
+ if waveform.ndim > 1:
21
+ waveform = waveform[0]
22
+ inputs = processor(waveform.numpy(), sampling_rate=16000, return_tensors="pt")
23
+ with torch.no_grad():
24
+ logits = model(**inputs).logits
25
+ predicted_label = logits.argmax(dim=-1).item()
26
+ return predicted_label
27
+
28
+ interface = gr.Interface(
29
+ fn=classify_audio,
30
+ inputs=gr.Audio(source="upload", type="filepath"),
31
+ outputs="label",
32
+ title="Audio Classifier",
33
+ description="Upload an audio file to classify its label as AI-generated or Real."
34
+ )
35
+ interface.launch()