import React from 'react'; import { Volume2, AlertTriangle, ZoomIn } from 'lucide-react'; import ScoreRing from '../ui/ScoreRing'; import MetricCard from '../ui/MetricCard'; import TestExplanation from '../ui/TestExplanation'; const API_BASE = import.meta.env.VITE_API_URL || 'http://127.0.0.1:8000'; const VoiceTab = ({ result, getSyncColor, setZoomedImage, }) => { return ( <>
Audio Forensics: Voice Anti-Spoofing
Detecting synthetic voice clones and vocoder artifacts
{/* HERO VISUALS */} {result.voice_analysis.voice_plot_path && (
setZoomedImage(`${API_BASE}/${result.voice_analysis.voice_plot_path}`)}> Voice Spoofing Plot
Dual-Panel Audio Waveform & Spectral Power Density
)} {/* METRICS & SCORE */}

Mel-Frequency Metrics

{result.voice_analysis.warnings && result.voice_analysis.warnings.length > 0 && (

Spoofing Warnings

    {result.voice_analysis.warnings.map((w, i) =>
  • {w}
  • )}
)}
); }; export default React.memo(VoiceTab);