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))