Spaces:
Sleeping
Sleeping
| 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)) | |