Spaces:
Sleeping
Sleeping
File size: 2,633 Bytes
e3bdc52 a6ab27c e3bdc52 ffd044a 72892b6 ffd044a 72892b6 ffd044a e3bdc52 ffd044a e3bdc52 89dd351 ffd044a 89dd351 ffd044a a6ab27c ffd044a e3bdc52 ffd044a e3bdc52 ffd044a e3bdc52 72892b6 e3bdc52 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | from execution.inference_wav2vec import run_inference as run_wav2vec
from execution.inference_ast import run_ast_inference as run_ast
def get_combined_verdict(file_path):
"""
Orquestra a execução dos dois motores e aplica o Protocolo de Rigor (Abordagem Conservadora).
"""
# 1. Executa Motor 1 (Wav2Vec2 - Ritmo e Nuance)
res_w2v = run_wav2vec(file_path)
score_w2v = res_w2v.get("deepfake_probability", 0.0)
# 2. Executa Motor 2 (AST - Espectrograma e Frequência)
res_ast = run_ast(file_path)
score_ast = res_ast.get("risk_score", 0.0)
# 3. Lógica do Protocolo de Rigor V3 (Soberania HyperMoon)
# O motor Wav2Vec2 (HyperMoon) é o comandante principal (70% do peso)
# Pesos definidos para dar comando ao HyperMoon
WEIGHT_W2V = 0.7
WEIGHT_AST = 0.3
# Cálculo ponderado do score
final_score = (score_w2v * WEIGHT_W2V) + (score_ast * WEIGHT_AST)
# Thresholds de decisão
SPOOF_THRESHOLD = 0.50
HIGH_CONFIDENCE = 0.85
is_fraud = False
verdict = "AUTHENTIC"
# Verifica se houve erro silencioso nos motores
error_msg = res_w2v.get("error") or res_ast.get("error")
if error_msg:
final_score = 0.0
verdict = "ERROR"
message = f"ERRO INTERNO: Os motores falharam ao processar o áudio. Detalhe: {error_msg}"
# Lógica de decisão baseada na confiança do comandante (HyperMoon)
elif score_w2v >= HIGH_CONFIDENCE:
is_fraud = True
verdict = "SPOOF"
message = "COMANDO HYPERMOON: Detecção crítica de padrões neurais sintéticos com alta convicção."
elif final_score >= SPOOF_THRESHOLD:
is_fraud = True
verdict = "SPOOF"
message = f"ALERTA COMBINADO: Risco de {(final_score*100):.1f}% identificado, com base na análise espectral e fonética."
else:
message = "INTEGRIDADE CONFIRMADA: Padrões de voz condizentes com gravação humana autêntica."
return {
"verdict": verdict,
"fraud_probability": final_score,
"wav2vec_score": score_w2v,
"ast_score": score_ast,
"temporal_scores": res_w2v.get("temporal_scores", []),
"engines_consensus": message,
"details": {
"protocol": "Protocolo de Rigor V3 (Soberania HyperMoon)",
"weights": {"wav2vec": WEIGHT_W2V, "ast": WEIGHT_AST}
},
"engines": ["HyperMoon-Wav2Vec2", "AST-Spectrogram"]
}
if __name__ == "__main__":
import sys
if len(sys.argv) > 1:
import json
print(json.dumps(get_combined_verdict(sys.argv[1]), indent=2))
|