RJ40under40 commited on
Commit
779e17c
·
verified ·
1 Parent(s): 016625d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -7
app.py CHANGED
@@ -1,5 +1,5 @@
1
  # ======================================================
2
- # HCL AI VOICE DETECTION API – HF SPACES SAFE
3
  # ======================================================
4
 
5
  import base64
@@ -13,7 +13,7 @@ from fastapi.middleware.cors import CORSMiddleware
13
  from fastapi.security.api_key import APIKeyHeader
14
  from pydantic import BaseModel
15
 
16
- from transformers import AutoProcessor, AutoModelForAudioClassification
17
 
18
  # ======================================================
19
  # CONFIG
@@ -21,7 +21,8 @@ from transformers import AutoProcessor, AutoModelForAudioClassification
21
  API_KEY_NAME = "access_token"
22
  API_KEY_VALUE = "HCL_SECURE_KEY_2026"
23
 
24
- MODEL_ID = "superb/wav2vec2-base-superb-ks" # ✅ VERIFIED, EXISTS
 
25
  TARGET_SR = 16000
26
 
27
  # ======================================================
@@ -36,7 +37,7 @@ logger = logging.getLogger("voice-detection")
36
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
37
  logger.info(f"Using device: {DEVICE}")
38
 
39
- processor = AutoProcessor.from_pretrained(MODEL_ID)
40
  model = AutoModelForAudioClassification.from_pretrained(MODEL_ID).to(DEVICE)
41
  model.eval()
42
 
@@ -57,7 +58,7 @@ app.add_middleware(
57
  )
58
 
59
  # ======================================================
60
- # SCHEMAS
61
  # ======================================================
62
  class AudioRequest(BaseModel):
63
  audio_base64: str
@@ -87,7 +88,7 @@ def decode_audio(b64_audio: str):
87
 
88
 
89
  def analyze_voice(audio):
90
- inputs = processor(
91
  audio,
92
  sampling_rate=TARGET_SR,
93
  return_tensors="pt"
@@ -100,8 +101,8 @@ def analyze_voice(audio):
100
  probs = torch.softmax(logits, dim=-1)
101
 
102
  confidence, pred = torch.max(probs, dim=-1)
103
-
104
  label = "AI_GENERATED" if pred.item() == 1 else "HUMAN"
 
105
  return label, round(confidence.item(), 4)
106
 
107
 
 
1
  # ======================================================
2
+ # HCL AI VOICE DETECTION API – HF SPACES (STABLE)
3
  # ======================================================
4
 
5
  import base64
 
13
  from fastapi.security.api_key import APIKeyHeader
14
  from pydantic import BaseModel
15
 
16
+ from transformers import AutoFeatureExtractor, AutoModelForAudioClassification
17
 
18
  # ======================================================
19
  # CONFIG
 
21
  API_KEY_NAME = "access_token"
22
  API_KEY_VALUE = "HCL_SECURE_KEY_2026"
23
 
24
+ # ✅ VERIFIED audio-classification model
25
+ MODEL_ID = "superb/wav2vec2-base-superb-ks"
26
  TARGET_SR = 16000
27
 
28
  # ======================================================
 
37
  DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
38
  logger.info(f"Using device: {DEVICE}")
39
 
40
+ feature_extractor = AutoFeatureExtractor.from_pretrained(MODEL_ID)
41
  model = AutoModelForAudioClassification.from_pretrained(MODEL_ID).to(DEVICE)
42
  model.eval()
43
 
 
58
  )
59
 
60
  # ======================================================
61
+ # SCHEMA
62
  # ======================================================
63
  class AudioRequest(BaseModel):
64
  audio_base64: str
 
88
 
89
 
90
  def analyze_voice(audio):
91
+ inputs = feature_extractor(
92
  audio,
93
  sampling_rate=TARGET_SR,
94
  return_tensors="pt"
 
101
  probs = torch.softmax(logits, dim=-1)
102
 
103
  confidence, pred = torch.max(probs, dim=-1)
 
104
  label = "AI_GENERATED" if pred.item() == 1 else "HUMAN"
105
+
106
  return label, round(confidence.item(), 4)
107
 
108