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